scp는 비밀번호 없이 작동하지 않습니다

scp는 비밀번호 없이 작동하지 않습니다

비밀번호를 입력하지 않고도 파일을 전송하고 명령을 실행할 수 있도록 키를 만들었습니다. 나는 이 가이드를 사용하여 이 작업을 수행합니다.

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 명령에서 정규화된 이름을 사용할 수 없습니다.

관련 정보