Python实现ssh需要用到一些组件,其中包括paramiko、sshtunnel和fabric等组件。下面逐一介绍它们的使用方法和注意事项。
1. Paramiko
Paramiko是用Python实现的SSH协议客户端,可以用于远程执行命令和上传/下载文件等操作。安装方法很简单,只需要使用pip命令即可:
```
pip install paramiko
```
参数详解:
- SSHClient:SSH客户端,用来连接服务器、执行命令等操作;
- SFTPClient:SFTP客户端,用来上传/下载文件等操作;
- Transport:交互层,建立加密通道,用了RSA、DSA、ECDSA等算法;
- Channel:通道,传输文件和数据等操作;
- Key:密钥,用于SSH的加密。
具体使用方法可以参考以下代码:
```
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname', port=22, username='username', password='password')
stdin, stdout, stderr = ssh.exec_command('ls -l')
for line in stdout:
print(line)
ssh.close()
```
2. Sshtunnel
Sshtunnel是用Python封装的SSH隧道库,可以用来实现本地端口转发、远程端口转发等操作。安装方法同样是使用pip命令:
```
pip install sshtunnel
```
参数详解:
- SSHTunnelForwarder:SSHTunnel主要类,用来建立隧道;
- create_logger:创建logger;
- open_tunnel:建立隧道方法,可以实现本地端口转发和远程端口转发;
- close:关闭隧道。
具体使用方法可以参考以下代码:
```
from sshtunnel import SSHTunnelForwarder
server = SSHTunnelForwarder('ssh.hostname.com',
ssh_username='ssh_username',
ssh_password='ssh_password',
remote_bind_address=('127.0.0.1', 5432),
local_bind_address=('0.0.0.0', 10022))
server.start()
print(server.local_bind_port)
server.stop()
```
以上代码通过SSHTunnelForwarder建立的隧道,将服务器上的PostgreSQL数据库映射到本地端口的5432,然后通过10022端口进行访问。
3. Fabric
Fabric是一个Python库,可以将多个命令批量执行,其中内置了SSH模块,可以直接使用SSH协议连接到远程服务器。安装方法同样是pip命令:
```
pip install fabric
```
参数详解:
- Connection:用于管理SSH连接、执行远程命令等操作的主类。
- run:远程执行命令。
- put:上传文件。
- get:下载文件。
- local:本地执行命令。
- cd:更改远程服务器当前目录。
- sudo:管理员权限执行命令。
具体使用方法可以参考以下代码:
```
from fabric import Connection
c = Connection(host='hostname', user='username', connect_kwargs={'password': 'password'})
# 执行命令
c.run('ls -l')
# 上传文件
c.put('localpath', 'remotepath')
# 下载文件
c.get('remotepath', 'localpath')
# 更改目录
c.cd('path')
# 执行sudo命令
c.sudo('command', password='password')
```
4. 4邻接8邻接python代码
4邻接和8邻接是图形学中常用的概念,用于表示二维平面上的像素点之间的关系。其中,4邻接表示像素点与上下左右四周的像素点相邻,8邻接表示像素点与其周围的八个像素点相邻。
以8邻接为例,以下代码可以查找位于坐标(x, y)周围的8个像素点的坐标:
```
def find_8neighbors(x, y):
neighbors = [] # 存储8个相邻点的坐标
for i in range(-1, 2):
for j in range(-1, 2):
if i == 0 and j == 0:
continue
neighbors.append((x+i, y+j))
return neighbors
```
以上代码使用嵌套循环查找(x, y)周围的所有8个相邻点,然后存储到列表中返回。
总结
以上介绍了Python实现SSH操作所需要用到的组件,包括paramiko、sshtunnel和fabric等。同时也介绍了4邻接和8邻接在图形学中的应用,并给出了8邻接的Python代码示例。这些知识点应该能够对初学者有所帮助。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
你已经懒得理他,那你就一直不说话,等他问你怎么不说话,你说狗咬我一口,我不可能咬狗一口。