'기대'를 사용하여 비밀번호로 자동 전송 [복제
문제
이 질문은 이미 여기에 답이 있습니다.
원격 서버에서 로컬로 파일을 복사하려고합니다. 다음은 '기대'를 사용하여 비밀번호로 자동 전송하여 실행하는 스크립트입니다.
scp user@host:/folder/myFile ./
expect "Password: "
send "myPassword"
이것을 실행할 때 여전히 "비밀번호"로 프롬프트합니다. 무엇이 잘못 되었습니까?
해결책
당신이하려는 것에서 공개 및 개인 키로 SSH를 사용하는 것이 더 나을 것 같습니다. SSH-Keygen 튜토리얼을 위해 Google을 시작하여 시작할 수 있습니다.
다른 팁
Sam과 Nik에 동의하지만 질문에 대한 답은 "Enter를 쳤다"는 것입니다.
send "mypassword\r"
이것은 스크립트가 작업을 수행 할 것으로 기대합니다 (감사합니다 '제드 우드' )
#!/usr/bin/expect -f
set filename [lindex $argv 0]
set timeout -1
spawn scp $filename myusername@192.168.1.123:/home/myusername/
set pass "mypassword"
expect {
password: {send "$pass\r" ; exp_continue}
eof exit
}
다른 사람이 픽업하고 다른 곳에서 사용할 수있는 그런 대본을 남기지 마십시오. 공개 키 인증, 설정이 매우 쉽습니다.
제휴하지 않습니다 StackOverflow