使用python的paramiko模块对远程主机进行文件上传和下载

paramiko模块可以使python实现对远程主机的操作,这篇文章主要介绍一下使用paramiko模块来进行本地与远程主机的文件上传和下载操作。


对文件的上传和下载主要分为密码登录和ssh登录两种方式,下面我们来分别介绍:

  1. 密码登录方式:

#python密码登录上传文件到远程
t = paramiko.Transport(("34.xx.xx.xx", 22))#主机ip
t.connect(username="ubuntu", password="123455")#填写你自己的主机用户名和密码
sftp = paramiko.SFTPClient.from_transport(t) 
localpath = r'E:/dd.txt'
remotepath = '/home/ubunut/dd.txt'
sftp.put(localpath, remotepath)
t.close()

下载文件只需改变

sftp.put(localpath, remotepath)

sftp.get(remotepath,localpath)

即可。


  2.ssh登录方式:

ssh登录方式更加安全,对于谷歌云这种主机来说没有登录没有密码就只能用这种方式。

#python ssh 远程上传文件
import paramiko
ssh = paramiko.SSHClient()
SSH_PRIVATE_KEY =r'openssh'  #本地密钥文件路径
key = paramiko.RSAKey.from_private_key_file(SSH_PRIVATE_KEY)
paramiko.util.log_to_file('paramiko.log')
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='34.xx.xx.xx', port=22, username='xxx', pkey=key)
t = ssh.get_transport()
sftp = paramiko.SFTPClient.from_transport(t)
localpath = r'E:/dd.txt'
remotepath = '/home/ubuntu/dd.txt'
d = sftp.get(remotepath, localpath)
print(d)


踩过的坑:

putty产生的私钥文件不能被paramiko识别,需要通过puttygen将其转换为openssh格式。

使用python的paramiko模块对远程主机进行文件上传和下载

导入putty产生的ppk私钥文件,然后Export OpenSSH key将其转换为opensssh格式。

评论

Live Sex Cams Free