python的paramiko模块-远程登录linux主机并操作

paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作。

 

如果python服务器对被远程控制机器开启了免密验证,即在python服务器上可通过ssh 用户名@被控制机器ip 登录被远程控制机器,而不用输入密码,那么获取python服务器的私钥并通过私钥进行连接,如果没有开启免密验证则通过密码进行连接。

 

1.开启免密验证

#执行命令
import paramiko
#获取本机私钥
private_key=paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
#实例化SSHClient
ssh = paramiko.SSHClient()
#自动添加策略,保存python服务器的主机名和密钥信息
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接被远程控制机器
ssh.connect('被控制机器ip', 端口号, '登录用户名', private_key[,timeout=n])
#打开一个channel并执行命令
stdin, stdout, stderr = ssh.exec_command('command')
#打印执行结果
print(stdout.read())
#关闭SSHClient
ssh.close()

 

#上传文件
import paramiko
#获取本机私钥
private_key=paramiko.RSAKey.from_private_key_file(/root/.ssh/id_rsa)
#获取Transport实例
t=paramiko.Transport('被控制机器ip',端口号))
#连接SSH服务端
t.connect('登录用户名',private_key)
#获取sftp实例
sftp = paramiko.SFTPClient.from_transport(t)
#上传文件
sftp.put('log.log','/tmp/log.log')
#关闭sftp连接
t.close()

#下载文件
import paramiko
#获取本机私钥
private_key=paramiko.RSAKey.from_private_key_file(/root/.ssh/id_rsa)
#获取Transport实例
t=paramiko.Transport('被控制机器ip',端口号))
#连接SSH服务端
t.connect('登录用户名',private_key)
#获取sftp实例
sftp = paramiko.SFTPClient.from_transport(t)
#下载文件
sftp.get('/tmp/log.log', 'log3.log')
#关闭sftp连接
t.close()

 

 

2.未开启免密验证

#执行命令
import paramiko
#实例化SSHClient
ssh = paramiko.SSHClient()
#自动添加策略,保存python服务器的主机名和密钥信息
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接被远程控制机器
ssh.connect('被控制机器ip', 端口号, '登录用户名', '登录密码'[,timeout=n])
#打开一个channel并执行命令
stdin, stdout, stderr = ssh.exec_command('command')
#打印执行结果
print(stdout.read())
#关闭SSHClient
ssh.close()

 

#上传文件
import paramiko#获取Transport实例
t=paramiko.Transport('被控制机器ip',端口号))
#连接SSH服务端
t.connect('登录用户名','登录密码')
#获取sftp实例
sftp = paramiko.SFTPClient.from_transport(t)
#上传文件
sftp.put('log.log','/tmp/log.log')
#关闭sftp连接
t.close()

#下载文件
import paramiko#获取Transport实例
t=paramiko.Transport('被控制机器ip',端口号))
#连接SSH服务端
t.connect('登录用户名','登录密码')
#获取sftp实例
sftp = paramiko.SFTPClient.from_transport(t)
#下载文件
sftp.get('/tmp/log.log', 'log3.log')
#关闭sftp连接
t.close()

 

转载于:https://www.cnblogs.com/Forever77/p/10056256.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值