scp 또는 ssh 비밀번호 사용 [닫기]

scp 또는 ssh 비밀번호 사용 [닫기]

스크립트를 사용하여 한 서버에서 다른 서버로 파일을 보내고 싶습니다. 비밀번호가 있는데 스크립트에 비밀번호를 어떻게 전달합니까? 저는 솔라리스 5.10을 사용하고 있습니다.

답변1

스크립트에 비밀번호를 사용하는 것은 권장되지 않습니다. 대신 SSH 키를 사용하여 비밀번호 없이 로그인할 수 있습니다.

스크립트를 실행 중인 머신에서 실행하여 ssh-keygen키 파일을 생성합니다. 모든 질문에 대해 Enter 키를 누르면 기본 설정이 제대로 작동합니다. 키 파일이 있으면 .key 파일을 사용하여 다른 서버에 복사할 수 있습니다 ssh-copy-id other.server. 그러면 파일이 올바르게 설치되어 로그인할 수 있습니다. ssh-copy-id비밀번호를 묻는 메시지가 표시됩니다. 지금 다른 서버에 연결 ssh하거나 연결 하려고 하면 scp더 이상 비밀번호가 필요하지 않습니다.

여전히 스크립트에 비밀번호를 입력하는 것이 유일한 옵션이라고 생각한다면(그렇지도 않고 그렇게 해서도 안 됩니다) expect메시지가 표시될 때 비밀번호를 입력하는 스크립트를 작성할 수 있습니다.sshscp

답변2

이 예상 스크립트를 사용할 수 있습니다

#!/usr/bin/expect

set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
#Source File Path
set source [lindex $argv 3]
#Destination Path
set dest [lindex $argv 4]

spawn bash -c "scp $source $user@$ip:$dest"
expect "password:"
send "$password\r"
interact

관련 정보