SCP 또는 SFTP의 비밀번호 입력을 자동화하는 방법은 무엇입니까?

SCP 또는 SFTP의 비밀번호 입력을 자동화하는 방법은 무엇입니까?

scp파일을 다른 서버에 백업하는 명령을 입력하는 스크립트가 있습니다 . 그런데 실행하면 비밀번호를 물어보더라구요. 이것을 자동화할 수 있는 방법이 있나요? CentOS 5.6을 사용하고 있습니다. 나는 가이드를 거의 본 적이 없으며 spawn내가 그것을 사용할 때 명령을 사용하고 이라고 말합니다 -bash: spawn: command not found.

#!/usr/bin/expect -f

# connect via scp
spawn scp "[email protected]:/home/santhosh/file.dmp" /u01/dumps/file.dmp
#######################
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send "PASSWORD\r"
}
}
interact

답변1

키 기반 인증과 빈 비밀번호를 사용하세요. 비밀번호를 묻지 않습니다.

따르다이것들속도.

답변2

"Expect"가 설치되어 있는지 확인하세요. "yum"을 사용하는 Linux 배포판에서는 루트로 실행합니다. # yum install expect그런 다음 다음을 입력하여 스크립트의 예상 경로가 올바른지 확인합니다. $ which expect /usr/bin/expect 반환된 경로는 스크립트 시작 부분에 배치됩니다. # !/usr /bin/기대 -f

답변3

스폰이 제대로 작동하지 않으면 의도한 설치를 확인해야 합니다. 비밀번호 전송은 다음과 같이 자동화될 수 있습니다.

spawn scp "[email protected]:/home/santhosh/file.dmp" /u01/dumps/file.dmp

expect {
"assword:" {
    send "MyPassword\r"
    # you can send remote commands here..
}
"yes/no)?" {
    send "yes\r"
    sleep 2
    exp_continue
}
timeout {
    puts "\nError: timed out.\n"
    exit
}
}

관련 정보