2009-11-25 86 views
4
import paramiko 

client = paramiko.SSHClient() 
client.load_system_host_keys() 
ip = '192.168.100.6' 
client.connect(ip, username='root', password='mima') 
i, o, e = client.exec_command('apt-get install sl -y --force-yes') 
print o.read(), e.read() 
client.close() 

內SSH我用這個例子。它是工作正常,但登錄後Server1的,我想登錄服務器2 我的意思是嵌套的ssh。Python的SSH的paramiko問題 - 從SSH會話

回答

4

難道你不能從你的client.exec_command內部調用ssh命令嗎?
像:

client.exec_command('ssh [email protected] "apt-get install sl -y --force-yes"') 
+0

我想看到「freem -m」,但如何給密碼烏爾查詢 client.exec_command('SSH用戶@主機2我想發送密碼也在這裏「和apt-get安裝SL -y --force-yes「')如何? – rajaneesh 2009-11-25 12:02:49

+1

我會使用密鑰(公共目標服務器上的公共密鑰,放入.ssh/authorized_keys中,您保留在您使用ssh的計算機上的私有密鑰)執行授權部分。這是更好,更安全,然後保持在密碼源 – kender 2009-11-25 12:07:15

+0

進口的paramiko 客戶端= paramiko.SSHClient() client.load_system_host_keys() IP = 'IP號' client.connect(IP,用戶名= '用戶名',密碼='password') i,o,e = client.exec_command(「ssh user @ host2 sudo netstat -antp | grep'CLOSE_WAIT'|」) print o.read(),e.​​read() client.close () 但這裏的問題是它wating的密碼..我是新的python ..請告訴我如何發送密碼或.ssh/authorized_keys與 – rajaneesh 2009-11-26 05:17:05

0

你在客戶端執行命令「ssh」,而不是apt-get。

只要你的python程序不存在,你就無法在客戶端啓動paramiko會話。您使用ssh開始的軟件必須位於該機器上。

也許首先scp一個你的軟件的副本,並開始使用類似-recursive_lvl = 1的參數?