Mar*_*ses 9 python ssh openssh paramiko
我需要使用 SSH 连接到服务器来下载文件。我有 Ubuntu,并且以标准方式设置了 SSH:我有一个ssh_config文件,其中定义了服务器地址 ( ) 和用户名的.ssh主机条目(例如),并且我设置了 RSA 密钥。因此,当我尝试从命令行或 bash 登录 SSH 时,我只需要使用host_keyHostname.comssh host_key
我想用Python 来做这个。标准解决方案似乎是使用 Paramiko 来建立连接。我试过这个:
from paramiko import SSHClient
from scp import SCPClient
ssh = SSHClient()
ssh.load_system_host_keys()
ssh.connect('host_key')
scp = SCPClient(ssh.get_transport())
# etc...
Run Code Online (Sandbox Code Playgroud)
然而,它似乎总是挂起并超时ssh.connect('host_key')。即使当我尝试包含用户名和密码时:ssh.connect('host_key', username='usrnm', password='pswd')。
我的主机密钥未正确加载吗?这也能处理 RSA 密钥吗?
Hostname.com仅当我使用用户名和输入的密码的整体时,它才有效。这可能有点不安全。
Mar*_*ryl -2
ssh_config我认为将文件与 Paramiko(或任何其他代码/语言)一起使用并不常见。ssh_config是 OpenSSH 工具的配置文件,而不是一般的 SSH。
通常,您直接在代码中指定私钥作为SSHClient.connect方法的参数:
如何使用带有公钥文件的 Paramiko 访问远程服务器
如果你想继续使用ssh_config,Paramiko 可以解析它。检查parse_ssh_config和lookup_ssh_host_config功能。但我相信,您仍然必须从配置中查找密钥文件并将其显式传递给SSHClient.connect方法。