Linux 시스템 네트워크를 통해 일부 파일을 복사할 계획인데 사용하려고 하면 scp
확인 메시지가 나타나고 "예"를 입력한 다음 비밀번호를 입력해야 합니다.
"yes"를 입력하고 비밀번호를 제공하지 않고 이를 수행할 수 있는 방법이 있습니까?
답변1
여기에는 두 가지 상호 작용이 있습니다.
첫 번째 SSH 요구 사항서버 신원 확인. 이는 공격자가 서버를 가장하여 사용자를 속여 로그인하고 비밀번호나 기타 기밀 데이터를 제공하도록 할 수 있기 때문에 필요합니다. 서버에 처음 연결할 때 호스트의 신원을 확인해야 합니다. 그 후 SSH는 호스트 이름과 암호화 ID 간의 연관성을 기억합니다.
SSH가 대상 서버와 통신하고 있다고 확신하면 다음을 수행해야 합니다.사용자 계정을 인증하세요서버에 일부 자격 증명을 제공합니다. 다른 설정을 하지 않은 경우 비밀번호를 입력하라는 메시지가 표시됩니다.
~을 위한서버 인증가장 간단한 해결책은 서버에 연결하는 것입니다한 번이 계정에서. 본인임을 확인하고 "예"를 입력하세요. 이 결정은 기록되며 ~/.ssh/known_hosts
다시는 질문을 받지 않습니다.
호스트 이름 외에도 IP 주소를 묻는 메시지가 나타날 수도 있습니다. 서버가 동적 IP 주소를 사용하는 경우 이는 성가실 수 있습니다. 서버의 IP 주소가 변경되었다는 사실은 거의 관심이 없으므로 CheckHostIP no
IP 주소 확인을 구성 파일에 넣어 비활성화하는 것은 일반적으로 해롭지 않습니다 ~/.ssh/config
.
~을 위한사용자 인증, 무인 작업을 활성화하려면 비밀번호 없이 키 쌍을 생성하세요. 클라이언트 컴퓨터에서 ssh-keygen
빈 암호를 실행하고 입력합니다. 그런 다음 ssh-copy-id the-server.example.com
공개 키를 서버에 복사를 실행합니다(지금까지 서버가 사용자를 인증할 수 있는 유일한 방법이므로 이 시점에서 비밀번호를 입력해야 합니다). 그 후 SSH는 키 파일을 읽게 되며, 키 파일에는 비밀번호가 없으므로 사람의 개입 없이 키를 인증에 사용할 수 있습니다.
답변2
예. 실제로 ssh-keygen
두 대의 통신 컴퓨터 간에 비밀번호 없는 SSH 인증을 설정하려면 먼저 and 명령을 사용하세요 ssh-copy-id
. 가셔도 됩니다.