paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能。这是一个第三方的软件包,使用之前需要安装。
#pip install paramiko
--------------------------------------------------------------------------------------------
SSHClient
用于连接远程服务器并执行基本命令
基于用户名密码连接:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import paramiko #
创建SSH对象ssh = paramiko.SSHClient()#
允许连接不在know_hosts文件中的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#
连接服务器ssh.connect(hostname='c1.salt.com',
port=22,
username='wupeiqi',
password='123') #
执行命令stdin,
stdout, stderr = ssh.exec_command('df')#
获取命令结果result = stdout.read() #
关闭连接ssh.close() |
基于公钥密钥连接:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import paramikoprivate_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')#
创建SSH对象ssh = paramiko.SSHClient()#
允许连接不在know_hosts文件中的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#
连接服务器ssh.connect(hostname='c1.salt.com',
port=22,
username='wupeiqi',
key=private_key)#
执行命令stdin,
stdout, stderr = ssh.exec_command('df')#
获取命令结果result = stdout.read()#
关闭连接ssh.close() |
SFTPClient
用于连接远程服务器并执行上传下载
基于用户名密码上传下载
|
1
2
3
4
5
6
7
8
9
10
11
12
|
import paramikotransport = paramiko.Transport(('hostname',22))transport.connect(username='wupeiqi',password='123')sftp = paramiko.SFTPClient.from_transport(transport)#
将location.py 上传至服务器 /tmp/test.pysftp.put('/tmp/location.py', '/tmp/test.py')#
将remove_path 下载到本地 local_pathsftp.get('remove_path', 'local_path')transport.close() |
基于公钥密钥上传下载
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import paramikoprivate_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')transport = paramiko.Transport(('hostname', 22))transport.connect(username='wupeiqi',
pkey=private_key
)sftp = paramiko.SFTPClient.from_transport(transport)#
将location.py 上传至服务器 /tmp/test.pysftp.put('/tmp/location.py', '/tmp/test.py')#
将remove_path 下载到本地 local_pathsftp.get('remove_path', 'local_path')transport.close() |
本文介绍Paramiko模块的使用方法,包括通过SSHClient连接远程服务器执行命令,以及利用SFTPClient进行文件上传和下载操作。
1329

被折叠的 条评论
为什么被折叠?



