2013-04-25 65 views
3

我试图通过一个Python脚本通过SSH连接到服务器。目前我正在尝试paramiko。我在客户端和服务器之间建立了一个公钥,所以我不需要密码。我使用下面的代码的那一刻:使用Paramiko时不支持Errno -8 Servname

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') 

但是运行这个时候,我发现了错误

[错误-8]不支持ai_socktype

Servname任何帮助?

回答

0

基本上这抱怨ai_socktype如果跳过任何参数,但没有明确的名字,你跳过一前一后的参数。在这种情况下,问题在于参数'username'是第二个参数,但不是'username ='oracle'。这也是为什么添加端口号修复它(然后没有参数被跳过)

0

这是通过添加端口号作为参数解决!

0

您可以指定参数。不需要添加端口号(如果可以使用默认端口号)。

connect的定义,你的例子是这样的:

ssh.connect('192.168.56.102', username='oracle', password=None, key_filename='~/.ssh/id_rsa')