2016-08-16 25 views
0

我想連接到網絡設備。但是在政策方面,我必須首先成功地將ssh發送到終端服務器,然後從該終端服務器ssh到網絡設備。在Python中,我使用Paramiko:通過終端服務器創建SSH會話連接到設備

import paramiko 
ssh = paramiko.SSHClient() 
print("OTP : ") 
otp = raw_input() 
ssh.port=9922 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh.load_system_host_keys() 
ssh.connect('10.0.0.1',9922,username='khangtt',password=str('12345')+str(otp)) 

stdin, stdout, stderr = ssh.exec_command('whoami') 
stdin.close() 
for line in stdout.read().splitlines(): 
    print(line) 

連接到服務器成功,我可以在輸出中看到我的用戶名。但我不知道如何SSH到設備。我用這一點,但沒有發生設置輸入用戶名/密碼:

stdin, stdout, stderr = ssh.exec_command('telnet 10.80.1.120') 
stdin.close() 
for line in stdout.read().splitlines(): 
    print(line) 

回答

0

由於您使用的paramiko,這裏使用的文檔:https://pynet.twb-tech.com/blog/python/paramiko-ssh-part1.html。它非常明確。

或者你也可以試試這裏的代碼進行連接:

ssh.connect('10.0.0.1', 'khangtt', str('12345')+str(otp), look_for_keys=False, allow_agent=False) 

或者

ssh.connect('10.0.0.1', 'khangtt', str('12345')+str(otp)) 

的情況下,你不需要尋找鑰匙,並允許代理。

+0

嘗試主機密鑰策略設置爲:ssh.set_missing_host_key_policy( paramiko.AutoAddPolicy()) – d3r1ck

+0

你也可以在這裏找到更多的單證:http://jessenoller.com/blog/2009/02/05/ssh-programming -with-的paramiko-完全-不同 – d3r1ck