使用python和.pem文件通过SCP进行文件传输的最佳方式

时间:2016-09-19 12:39:27

标签: python ssh scp

我想在python中复制该命令:

scp -i aKey.pem aFile.txt ec2-user@serverIp:folder

我找到了一些SCP的例子,但没有发现使用.pem密钥,也没有通知用户密码。我怎么能在python中做到这一点?

1 个答案:

答案 0 :(得分:3)

尝试使用paramiko模块。

检查paramiko中的here for connect function,其中包含key_filename参数。

在paramiko模块中,有SFTP命令可用于传输文件。

Check here for SFTP info

演示代码如下所示:

import paramiko

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

client.connect(<IP Address>, username=<User Name>, key_filename=<.PEM File path)

# Setup sftp connection and transmit this script
#print "copying"
sftp = client.open_sftp()
sftp.put(<Source>, <Destination>)
sftp.close()

**

或者

**

您可以直接使用python直接执行上述命令。

check this link how to execute command in python

演示代码:

from subprocess import call
cmd = 'scp -i aKey.pem aFile.txt ec2-user@serverIp:folder'
call(cmd.split())