使用Paramiko,Python时不支持Errno -8 Servname

时间:2013-04-25 09:26:11

标签: python python-2.7 paramiko

我正在尝试通过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

任何帮助?

3 个答案:

答案 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'。这也是为什么添加端口号修复它(然后没有跳过参数)的原因