首页 > 解决方案 > 通过私钥使用 Python 进行 SSH

问题描述

在我的脚本中,我需要使用私钥对远程系统执行 SSH 并将文件转储到其目录中。

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

ssh -i private_key localhost

其次是标准输入:

输入密钥“private_key”的密码

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

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

标签: pythonsshparamikoprivate-key

解决方案


SSHClient.connect可以通过一个简单的调用来处理公钥认证:

import paramiko

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

当提供时,该password参数用作密码短语key_filename


此外,您还必须验证服务器的主机密钥(正如您之前必须完成的那样ssh)。请参阅Paramiko “未知服务器”


推荐阅读