2014-09-29 2 views
0

ssh 연결을 위해 bash 스크립트를 통해 암호를 전달하는 데 문제가 있습니다. 나는 모든 것이 작동하지만, 여전히 저장된 패스워드를 가져 오는 대신 패스워드를 묻는다. 아래의 스크립트의 부분에서 살펴보고 내가 잘못 분명 무언가가 있으면 알려 주시기 바랍니다 : 나는 "보내기"라인의 다양한 변화를 시도배시 스크립트 - SSH 연결

#! /bin/bash 
echo "Please enter a username:" 
read user 
echo "please enter a password:" 
read password 
echo please enter an IP address:" 
read ip 

ssh "$user"@"$ip" 
expect "password:" 
send "<password>\r" 
interact 

가. 예를 들어, "password \ r"과 password \ r을 시도했습니다. 나는 또한 시도한 SSH 연결에 의해 반환 된 정확한 텍스트를 반영하기 위해 "expect"라인을 수정 해 보았습니다.

제공되는 도움에 감사드립니다.

+0

어쩌면이 도움이 될 것입니다 http://stackoverflow.com/questions/4780893/use-expect-in-bash-script-to-provide-password -to-ssh-command –

답변

1

SSH에는 표준 I/O를 리디렉션하여 암호 도용을 방지하는 코드가 들어 있습니다.

정확한 해결책은 ssh-keygen으로 개인/공개 키 쌍을 생성하는 것입니다. 원격 측에 공개 키를 설치하십시오. ssh-copy-id 도움이 될 것입니다.

그러면 SSH 에이전트를 사용하여 개인 키를 메모리에로드 할 수 있으며 SSH는 암호 또는 키 구를 요구하지 않습니다.

관련 :

+0

또는 sshpass (오픈 소스)를 사용할 수 있습니다. http://linux.die.net/man/1/sshpass –