문제

이 질문은 이미 여기에 답이 있습니다.

원격 서버에서 로컬로 파일을 복사하려고합니다. 다음은 '기대'를 사용하여 비밀번호로 자동 전송하여 실행하는 스크립트입니다.

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
}

다른 사람이 픽업하고 다른 곳에서 사용할 수있는 그런 대본을 남기지 마십시오. 공개 키 인증, 설정이 매우 쉽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top