通过私钥使用 Python 进行 SSH

Age*_*Log 3 python ssh paramiko private-key

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

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

ssh -i private_key localhost
Run Code Online (Sandbox Code Playgroud)

接下来是标准输入:

输入密钥“private_key”的密码

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

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

Mar*_*ryl 5

SSHClient.connect可以通过简单的调用处理公钥身份验证:

import paramiko

ssh = paramiko.SSHClient()
ssh.connect(hostname, username=username, key_filename=key_path, password=passphrase)
Run Code Online (Sandbox Code Playgroud)

如果提供了参数,则将其password用作密码短语key_filename


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