现象
python paramiko执行ssh连接服务器时出现报错No authentication methods available
, 但是手动用用户密码连接时一切正常
# 安装paramiko
pip3 install paramiko >= 3.2.0
# 进入python3环境
python3
import paramiko
import paramiko.sftp
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('ip', username='username', password='pwd', banner_timeout=90)
解决办法
用户密码正确的前提下可以加上look_for_keys=False
参数试下,如下
ssh.connect('ip', username='username', password='pwd', look_for_keys=False, banner_timeout=90)
另一种情况就是没有带任何用户密码的话这个问题也能复现,这时候就需要检查自己的用户密码了
例如:
ssh.connect('ip', banner_timeout=90)
参考
Connection via Paramiko failing but works fine with SSH login from CLI