【发布时间】:2018-12-19 02:13:09
【问题描述】:
我可以使用命令从 Linux 机器 A SSH 到 Linux 机器 B
ssh user@ip.com
此连接不需要密码。我正在尝试使用 Python Paramiko 实现相同的自动化。这是代码
import os
import paramiko
ssh_client =paramiko.SSHClient()
ssh_client.connect(
hostname="myhost.com",
username="jagan",
password=None,
look_for_keys=False
)
它给出以下错误:
/lib/python3.6/site-packages/paramiko/client.py in connect(self, hostname, port, username, password, pkey, key_filename, timeout, allow_agent, look_for_keys, compress, sock, gss_auth, gss_kex, gss_deleg_creds, gss_host, banner_timeout, auth_timeout, gss_trust_dns, passphrase)
422 username, password, pkey, key_filenames, allow_agent,
423 look_for_keys, gss_auth, gss_kex, gss_deleg_creds, t.gss_host,
--> 424 passphrase,
425 )
426
/Application/DataScience/Anaconda/anaconda3/envs/hub/lib/python3.6/site-packages/paramiko/client.py in _auth(self, username, password, pkey, key_filenames, allow_agent, look_for_keys, gss_auth, gss_kex, gss_deleg_creds, gss_host, passphrase)
713 if saved_exception is not None:
714 raise saved_exception
--> 715 raise SSHException('No authentication methods available')
716
717 def _log(self, level, msg):
SSHException: No authentication methods available
这是在没有密码或任何内容的情况下连接到服务器的正确方法
身份验证机制是基于主机的。在/etc/ssh/ssh_config:
HostbasedAuthentication yes
EnableSSHKeySign yes setting
我相信这就是它不要求输入密码的原因。
【问题讨论】: