在我的脚本中,我需要使用私钥对远程系统执行SSH,并将文件转储到其目录中。
我用于SSH进入系统的命令是:
ssh -i private_key localhost
接着是标准输入:
输入密钥“ private_key”的密码
我正在尝试在Python脚本中执行此操作,但不确定如何编写命令并将密码短语作为参数传递,以便整个序列可以自动化。
请向我建议一种通过库(Paramiko SSHClient
)或代码段实现此目的的方法,我们将对此表示高度赞赏。
答案 0 :(得分:2)
SSHClient.connect
可以通过一个简单的调用来处理公钥身份验证:
import paramiko
ssh = paramiko.SSHClient()
ssh.connect(hostname, username=username, key_filename=key_path, password=passphrase)
如果提供了password
,则将key_filename
参数用作密码短语。
此外,您还必须验证服务器的主机密钥(如之前必须对ssh
进行的操作)。参见Paramiko "Unknown Server"。