我一直在尝试让这个工作,但是不断出现相同的错误。我已经尝试过主机的fqdn和ip。我已经尝试使用凭据和不使用凭据进行传递。我查看了错误消息中指示的行。我在谷歌上搜索了,但是无法弄清楚为什么这不起作用:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('host', username='loginname')
stdin, stdout, stderr = ssh.exec_command("pwd")
stdout.readlines()
错误:
Traceback (most recent call last):
File "audit.py", line 7, in <module>
ssh.connect('host', username='loginname')
File "/usr/lib/python2.6/site-packages/paramiko/client.py", line 338, in connect
self._auth(username, password, pkey, key_filenames, allow_agent, look_for_keys)
File "/usr/lib/python2.6/site-packages/paramiko/client.py", line 520, in _auth
raise SSHException('No authentication methods available')
- 我能通过ssh连接到主机,没有任何问题。
- ssh版本:OpenSSH_5.3p1,OpenSSL 1.0.0-fips 29 Mar 2010
- 需要注意的是:我正在尝试创建一种在多台远程服务器上运行一系列命令的方式。我使用
sys import argv
来运行脚本,例如python audit.py host1 host2 host3
,然后脚本将在特定主机上运行审核。我已经创建了一个完成此操作的bash脚本,但我希望通过Python找到更好的方法。
password
关键字引起的吗? - tshepang