2010-02-22 3 views
1

현재 다른 서버에 ssh가 있고 명령을 실행하는 스크립트가 있습니다. (예/아니오)를 연결하고 암호를 묻는 메시지가 나타나면 ssh 명령이 실행됩니다. ssh 호출이있을 때 프롬프트에 대한 입력을 자동으로 제공 할 수있는 방법이 있습니까?리눅스 ksh 스크립트를 실행할 때 프롬프트에 자동으로 입력을 제공하는 방법은 무엇입니까?

또한 공개 키를 사용하여 ssh 명령을 사용하면이 문제가 해결되지만 공개 키를 만들 수있는 권한이 없다는 것을 알고 있습니다.

답변

3

Don Libes는 Expect을 정확하게 만들었으므로 프롬프트와 상호 작용해야하는 도구를 프로그래밍 할 수 있습니다. 나는 심지어 모뎀과 함께 사용했습니다! 이것은 매우 오래된 도구이지만 매우 효과적이며 더 널리 알려질 가치가 있습니다.

유일한 단점은 내가 선호하는 프로그래밍 언어가 아닌 Tcl을 사용한다는 것입니다. 그러나 간단한 Tcl 스크립트를 작성하기에 충분한 Tcl을 배우면 1 시간 이상 걸리지 않을 것입니다. Expect는 실제로 작업을위한 완벽한 도구입니다.

+0

많은 언어가 Expect 포트를 가지고 있습니다. 특히 파이썬은 pexpect로 마음에 듭니다. – prestomation

+1

모든 사람이 좋아하는 언어는 아니지만이 유형의 작업에는 이상적입니다. 작업에 적합한 도구를 사용하십시오.이 경우 기대치는 일반적으로 다른 도구보다 우수합니다. 매우 성숙하고 견고하며 안정적입니다. –

+0

@ 브라이언 : 바로 위에! –

0

외부 도구를 다운로드하여 설치할 수 있습니까? 시도 할 수 있다면 sshpass을 시도하십시오. 나는 시도하지 않았지만, 당신은 그것을 줄 수 있습니다.