import paramiko
· 该模块基于SSH用于连接远程服务器并执行相关命令操作。
1、ssh范例:
import paramiko
ssh = paramiko.SSHClient() #创建SSH对象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #允许连接不在know_hosts文件中的主机
ssh.connect(hostname = '192.168.33.6', port = 22, username = 'root', password = 'tying89') # 连接服务器
stdin, stdout, stderr = ssh.exec_command('free -m') # 执行命令
res, err = stdout.read(), stderr.read() # 获取命令输出
result = res if res else err
print(result)
ssh.close() # 关闭连接
2、sftp范例:
import paramiko
transport = paramiko.Transport(('192.168.33.6', 22))
transport.connect(username = 'root', password = 'tying89')
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put('test_ssh.py', '/tmp/test.py') # 将test_ssh.py上传至服务器并重命名/tmp/test.py,注意这里不能写远端目录,一定要带上文件名
sftp.get('/root/hadoop-1.2.1-bin.tar.gz', 'hadoop.tar.gz') # 将remove_path下载到本地并重命名为local_path
transport.close()
3、密钥登录范例:
import paramiko
private_key = paramiko.RSAKey.from_private_key_file(r'E:\python\day9\id_rsa') #密钥文件位置
ssh = paramiko.SSHClient() #创建SSH对象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #允许连接不在know_hosts文件中的主机
ssh.connect(hostname = '192.168.33.6', port = 22, username = 'root', pkey = private_key) # 指定密钥连接服务器
stdin, stdout, stderr = ssh.exec_command('free -m') # 执行命令
res, err = stdout.read(), stderr.read() # 获取命令输出
result = res if res else err
print(result)
ssh.close() # 关闭连接