SSH 通过私钥使用 Python

SSH using Python via private keys

在我的脚本中,我需要使用私钥通过 SSH 连接到远程系统并将文件转储到它的目录中。

我用来通过 SSH 进入系统的命令是这样的:

ssh -i private_key localhost

后面是标准输入:

Enter passphrase for key 'private_key'

我正在尝试在 Python 脚本中执行此操作,但我不确定如何编写命令并将密码短语作为参数传递,以便整个序列可以自动化。

请建议我通过库 (Paramiko SSHClient) 或代码片段实现此目的的方法,我们将不胜感激。

SSHClient.connect 可以通过简单的调用处理 public 密钥认证:

import paramiko

ssh = paramiko.SSHClient()
ssh.connect(hostname, username=username, key_filename=key_path, password=passphrase)

当提供 key_filename 时,password 参数用作密码。


此外,您还必须验证服务器的主机密钥(正如您之前必须对 ssh 所做的那样)。见 Paramiko "Unknown Server".