2009-11-25 4 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는 내가 .. 그것을 잘 작동이 예제를 사용하지만 난 내가 중첩 된 SSH를 의미 서버 2 를 로그인 로그인 서버 1 후에합니다.파이썬 SSH paramiko 문제 - SSH 세션

답변

4

ssh 명령을 client.exec_command 내부에서 호출 할 수 없습니까?
같은 :

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

내가보고 싶은 'freem -m'그러나 UR 쿼리에 client.exec_command을 암호를 제공하는 방법 ('내가 비밀번호를 전송하려면 SSH 사용자 @의 호스트 2는 여기에 "SL의 -y를 설치 apt-get을 - 힘 - 예 " ') 어떻게? – rajaneesh

+1

나는 (당신이 대상 서버에 던져 넣은 공개 키, .ssh/authorized_keys, 당신이 ssh를 사용하는 컴퓨터에 보관하는) 공개 키로 인증 부분을 할 것입니다. 그것은 클라이언트 = paramiko.SSHClient() client.load_system_host_keys() IP = 'IP 주소' client.connect (IP, 사용자 이름 = '사용자 이름', 암호 paramiko 소스에 – kender

+0

가져 오기 암호를 유지 한 후 더 안전합니다 = 'password') i, o, e = client.exec_command ("ssh user @ host2 sudo netstat -antp | grep 'CLOSE_WAIT'|) 인쇄 o.read(), e.read() client.close() 하지만 여기에 문제가 암호에 대한 wating입니다 ... 나는 파이썬에 대한 새로운 오전 .. 제발 말해 비밀 번호 또는 .ssh/authorized_keys 보내는 방법 – rajaneesh

0

apt-get이 아닌 클라이언트에서 "ssh"명령을 실행합니다.

파이썬 프로그램이없는 한 실제로 클라이언트에서 paramiko 세션을 시작할 수 없습니다. ssh를 사용하여 시작하는 소프트웨어는 해당 컴퓨터에 있어야합니다.

아마도 소프트웨어 사본을 scp로 작성한 다음 -recursive_lvl = 1 같은 매개 변수를 사용하여 시작할 수 있습니까?