2013-04-25 74 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')