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

chr*_*r0x 5 python ssh scp

我想在 python 中复制该命令:

scp -i aKey.pem aFile.txt ec2-user@serverIp:folder
Run Code Online (Sandbox Code Playgroud)

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

Din*_*kar 8

尝试使用 paramiko 模块。

检查这里的连接功能中的paramiko具有key_filename说法。

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

在此处查看 SFTP 信息

演示代码如下所示:

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()
Run Code Online (Sandbox Code Playgroud)

**

或者

**

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

检查此链接如何在 python 中执行命令

演示代码:

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