비밀번호를 입력하지 않고도 파일을 전송하고 명령을 실행할 수 있도록 키를 만들었습니다. 나는 이 가이드를 사용하여 이 작업을 수행합니다.
http://says-story.blogspot.nl/2008/01/using-ssh-scp-sftp-without-password.html
로컬 환경에서 id_dsa.pub 키의 chmod를 600으로 변경합니다.
지금 이 명령을 실행하면
scp -i /home/.ssh/id_dsa.pub /prod/tool/CODELIBRARY.txt user@remoteenv:/toload
계속 비밀번호를 물어보네요. Enter 키를 누르면 비밀번호를 묻는 메시지가 나타납니다.
하지만 이 명령을 실행하면 암호나 암호 문구 없이도 작동합니다.
ssh -v -l username remoteenv
답변1
scp -i /home/.ssh/id_dsa.pub
이 명령에는 두 가지 오류가 있습니다. 하나는 이러한 상황이 /home/.ssh
존재할 가능성이 낮다는 것입니다. SSH 키는 일반적으로 홈 디렉토리라는 디렉토리에 있으며 .ssh
, 홈 디렉토리는 일반적으로 와 같으 /home/bob
므로 해당 .ssh
디렉토리는 입니다 /home/bob/.ssh
.
또 다른 개념적인 질문은 scp
(또는 ssh
또는 sftp
)이 주어져야 한다는 것입니다.사적인키 파일을 전달했지만 공개 키 파일을 전달했습니다. 이 키는 서버에서 클라이언트를 인증하는 데 사용됩니다. 클라이언트는 자신이 누구인지 증명해야 하며 이를 위해 다른 사람이 모르는 비밀, 즉 개인 키를 알고 있음을 보여줍니다. 서버는 클라이언트가 누구인지 알고 공개 키도 알고 있습니다.
scp
또는 ssh
기본적으로 올바른 파일을 찾기 때문에 키 파일을 지정하지 않을 때 작동합니다.
답변2
문제는... 이 명령을 실행할 때:
ssh-keygen -t dsa
키워드를 묻는 메시지가 표시됩니다.
[admin@test ~]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
비밀번호를 비워두셨나요? 아니면 거기에 비밀번호를 입력하셨나요? 이 경우 매번 비밀번호를 묻는 메시지를 피하기 위해 비밀번호를 비워두어야 합니다.
답변3
방금 발견한 또 다른 사실은 파일을 편집 .ssh/authorized_keys
하고 호스트 이름을 정규화해야 한다는 것입니다. 그렇지 않으면 scp/ssh 명령에서 정규화된 이름을 사용할 수 없습니다.