2012-03-19 2 views
0

을 보여줍니다하위 프로세스 입력 내가 원격 서버에 명령을 실행 파이썬 하위 프로세스를 사용하고 비밀번호

내가 암호를 입력 할 때 화면에 나타나는
p=subprocess.Popen('ssh [email protected] "sudo do_something"', shell=True) 

- 쉘에서이 실행에 반대, 여기서 암호는 숨겨져 있습니다.

이 입력 에코를 사용 중지하는 방법이 있습니까?

+0

'shell = True'를 제거하십시오 –

+1

이 스레드에 문의하실 수 있습니다 http://stackoverflow.com/questions/1787288/how-to-call-ssh-by-subprocess-module-so-that-it- uses-ssh-askpass-variable – bpgergo

+0

['fabric'] (http://fabfile.org)은 원격 서버에서 명령을 실행하는 데 유용 할 수 있습니다. – jfs

답변

1

자동화 할 항목을 입력해야하는 경우 pexpect를 사용하는 것이 좋습니다. http://www.noah.org/wiki/Pexpect 이렇게하면 (getpass 모듈을 사용하여) 사용자에게 암호를 미리 요청한 다음 스크립트에 "type "사실상 암호.

위에서 언급 한 웹 사이트에는 필요한 것을 수행하는 방법을 설명하는 몇 가지 예제가 있습니다.

관련 문제