SSH技术的理论知识就不做介绍了,在这里主要就是介绍Python针对SSH技术封装的两个模块:paramiko和sshtunnel。
paramiko可以实现执行远程命令,上传文件到远程,从远程下载文件。sshtunnel可以实现端口的绑定。
paramiko
基于用户名和密码连接
import paramiko
paramiko.util.log_to_file('paramiko.log') # 创建SSH连接日志文件(只保留前一次连接的详细日志,以前的日志会自动被覆盖)
ssh = paramiko.SSHClient()
# 读取known_hosts
ssh.load_system_host_keys()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='192.168.80.130', port=22, username='wv', password='meiyoumima')
# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls')
# 获取命令执行结果
print stdout.read()
# 关闭连接
ssh.close()
基于密钥连接
import paramiko
paramiko.util.log_to_fi