2012-06-12 3 views
0

안녕하세요 저는 다음 스크립트를 사용하여 내 서버에 ssh 로그인을합니다.로그인시 SSH 암호 문제가 발생합니다

spawn ssh [email protected] 
           expect "*(yes/no)?" 
          send "yes" 
           expect "password:" 
            send "pwd\n" 
           close 

잘 작동하지만 'pwd'값이 시스템에 전달되지 않으므로 스크립트가 시간 초과되고 종료됩니다. 제안 사항이 있으십니까?

+1

나는 스크립트에서 ssh를 사용하기 위해 ssh 키를 사용하고 스크립트 파일에 암호를 사용하는 것이 좋습니다. –

+0

"제대로 작동하지만 시스템에 'pwd'값을 전달하지 않으므로 스크립트가 시간 초과되고 종료됩니다." 더 이상 작동하지 않는 것처럼 들리는가? – niko

답변

1

"KbdInteractiveAuthentication"을 "no"로 설정하면 시도 할 수 있습니다 (ssh -o KbdInteractiveAuthentication="no" [email protected]). SSH는 기본적으로 키보드 대화 형 인증을 사용합니다. 이는 expect이 이해하지 못할 수도 있습니다.

대신 공개 키 인증을 사용하는 것이 좋습니다 (Flo에 의해 이미 권장 됨). 그것은 다루기가 더 쉬우 며, 더 안전하게, 그리고 더 편한 방법입니다. 매번 암호를 입력 할 필요없이 원격 서버에 로그인하는 방법을 찾고있는 경우 ssh-agent를 살펴보십시오. 그러면 데스크탑 세션에서 한 번을 입력 한 후에 암호가 저장됩니다. 비밀번호를 정말로 입력하지 않으려면 pam_ssh을 사용하십시오. 여기서 바탕 화면 로그인 비밀번호가 사용됩니다.

0

기본적으로 expect 명령은 아직 설치되지 않았습니다. 올바른 출력을 얻기 위해 설치하십시오.

관련 문제