Python实现ssh有哪些组件

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/

点赞(93) 打赏

评论列表 共有 1 条评论

素手绾青丝 2年前 回复TA

你已经懒得理他,那你就一直不说话,等他问你怎么不说话,你说狗咬我一口,我不可能咬狗一口。

立即
投稿
发表
评论
返回
顶部