아래 코드를 사용하여 원격 컴퓨터에서 명령을 실행하고 있습니다.
import paramiko
import os
dssh = paramiko.SSHClient()
dssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
dssh.connect('192.168.1.5', username='root', password='asdfghhh')
import os
stdin, stdout, stderr = dssh.exec_command('ls')
print stdout.read()
stdin, stdout, stderr = dssh.exec_command('ifconfig')
print stdout.read()
stdin, stdout, stderr = dssh.exec_command('ps')
print stdout.read()
dssh.close()
프로그램을 실행할 때 ls 및 ps 및 기타 명령 출력을 표시 할 수 있습니다. 그러나 ifconfig o / p는 관찰되지 않습니다.
이 문제를 해결하는 방법을 아십니까? 미리 감사드립니다 ...
서버는 서로 다른 세션에 대해 서로 다른 시작 스크립트를 실행하여 대화 형 및 비대화 형 SSH 세션을 구분할 수 있습니다. echo $PATH
paramiko SSH 세션과 일반 대화 형 세션을 통해 원격 호스트에서 실행 을 시도 하고 출력을 비교합니다.
해결 방법을 which ifconfig
위해 대화 형 세션에서 원격 서버에서을 수행하여 절대 경로를 얻고 paramiko 명령에서 사용할 수 있습니다.
stdin, stdout, stderr = dssh.exec_command('/abs/path/to/ifconfig')
참고 내 호스트의 결과 중 하나에 echo $PATH
paramiko의 SSH 클라이언트에서였다 /usr/bin:/bin
대화 형 세션에가있는 동안, /usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin
그리고 ifconfig
참에 위치한 /usr/sbin
paramiko 세션의 경로 외부, 즉.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다