我正在尝试通过Python脚本连接到服务器。目前我正在尝试paramiko。我在客户端和服务器之间设置了一个公钥,所以我不需要密码。我目前正在使用以下代码:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.56.102', 'oracle', None, '~/.ssh/id_rsa')
stdin, stdout, stderr = ssh.exec_command('ls')
但是在运行时我收到了错误
[Errno -8] ai_socktype
不支持Servname
任何帮助?
答案 0 :(得分:0)
通过添加端口号作为参数来解决这个问题!
答案 1 :(得分:0)
您只需指定参数即可。不需要添加端口号(如果它没有使用默认端口号)。
根据connect的定义,您的示例如下所示:
ssh.connect('192.168.56.102', username='oracle', password=None, key_filename='~/.ssh/id_rsa')
答案 2 :(得分:0)
基本上,如果您跳过任何参数但是在跳过的参数之后没有明确命名参数,则会抱怨ai_socktype。在这种情况下,问题是参数'username'是第二个参数,但不是'username ='oracle'。这也是为什么添加端口号修复它(然后没有跳过参数)的原因