비밀번호가 포함된 키를 사용하여 SSH 액세스를 위해 공개 키 인증이 필요한 서버를 설정했습니다. SSH를 통해 rsync를 수행할 때만 허용되는 비밀번호 없는 키를 설정하는 동시에 다른 모든 SSH 액세스에는 여전히 키와 비밀번호를 요구하는 방법이 있습니까?
답변1
rsync 전용으로 별도의 RSA 키를 생성하세요. 이 키에 비밀번호를 설정하지 마세요. id_rsa_rsync
개인 키, id_rsa_rsync.pub
공개 키 등 고유한 이름을 지정합니다 .
서버에서 ~/.ssh/authorized_keys
다음과 같이 새 줄에 공개 키를 설치합니다.
(server)$ cat << EOF >> .ssh/authorized_keys
command="rsync",no-pty,no-port-forwarding (paste your public key here)
EOF
생성된 파일을 확인하여 다음과 같은지 확인하세요.
(server)$ tail -1 .ssh/authorized_keys
command="rsync",no-pty,no-port-forwarding ssh-rsa AAAAB3..blah..blah..HhcvQ== [email protected]
rsync
로컬 컴퓨터에서 서버로 이동 하려면 방금 설정한 새 키를 사용하도록 -e 'ssh -i ~/.ssh/id_rsa_rsync'
추가 해야 합니다.rsync
rsync -av -e 'ssh -i ~/.ssh/id_rsa_rsync' local/files* server:/remote/path/
파일에 몇 가지 영리한 항목을 사용하면 명령줄을 ~/.ssh/config
단순화할 수 있습니다 .rsync
# this entry is used for normal logins to "server":
Host server
IdentityFile ~/.ssh/id_rsa
# this entry is used for rsyncing to "server" without a passphrase:
Host server-rsync
Hostname server
IdentityFile ~/.ssh/id_rsa_rsync
이 Hostname server
줄에는 유효한 DNS 이름이나 /etc/hosts
항목을 지정해야 합니다. 이 구성 항목을 사용하면 rsync
명령줄은 다음과 같습니다.
rsync -av local/files* server-rsync:/remote/path/