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".
在我的脚本中,我需要使用私钥通过 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".