首页 > 解决方案 > python 如何使用 jumpssh 无密码连接

问题描述

我正在尝试通过 python 脚本对 host1 进行 SSH,然后从那里跳转到 host2。这可以使用jumpssh以下代码来实现:

>>> from jumpssh import SSHSession

# establish ssh connection between your local machine and the jump server
>>> gateway_session = SSHSession('gateway.example.com',
...                              'my_user_1', password='my_password_1').open()

# from jump server, establish connection with a remote server
>>> remote_session = gateway_session.get_remote_session('remote.example.com', 'my_user_2', password='my_password_2')

现在,我在这里remote.example.com使用密码建立连接。

我无法找到一种方法,一旦我们进入主机名,我们如何remote.example.com通过简单的命令在没有密码的情况下连接:ssh remote.example.comgateway.example.com

当我传递命令时:ssh gateway.example.com使用 jumpssh,我得到错误:

身份验证失败,需要用户名和密码

或者是否可以使用 Python 中的任何其他模块?

标签: pythonssh

解决方案


通常,ssh 需要某种形式的身份验证,证书(密钥)或名称/密码根据您可以用作参数之一的api 参考, 如果您不确定证书是什么,则默认为您应该阅读它,但简而言之,您将需要创建一个证书(密钥)对,将公共的放在您尝试连接的服务器上,将私有的放在或将位置传递给使用参数private_key_file~/.ssh/
~/.ssh/jumpsshprivate_key_file


推荐阅读