서버에 로그인할 수 있는 추가 호스트를 위해 새 키 쌍이 필요합니다(그러나 보안상의 이유로 기존 키 쌍을 공유할 수는 없습니다).
이제 서버에서 ssh-keygen -t rsa -f newkey.key
잘 작동하는 새 쌍을 만든 다음 해당 키를 클라이언트에 복사하고 로그인을 사용하려고 시도 ssh user@server -i newkey.key
하지만 로그인할 수 없습니다. 대신 다음과 같은 메시지가 표시됩니다.
$ ssh user@server -i newkey.key
Warning: Permanently added 'server' (ECDSA) to list ofknown hosts.
Permission denied (publickey).
$
왜 이런 일이 발생하며 어떻게 작동하게 할 수 있나요? newkey.key
권한은 으로 설정됩니다 400
.
답변1
사람들이 키 기반 인증을 설정하려고 할 때 보게 되는 가장 일반적인 문제 중 하나는 키 쌍의 공개 부분을 파일에 추가하는 것을 잊어버렸다는 것입니다 authorized_keys
.
server.example.com
공개/개인 키 쌍을 생성할 때 -
user@server:~/ $ ssh-keygen -t rsa -f newkey.key
적절하게 비밀번호를 설정(또는 설정하지 않음)합니다.
그런 다음 공통 절반을 authorized_keys
파일에 넣으십시오.
user@server:~/ $ cat ~/.ssh/newkey.key.pub >> ~/.ssh/authorized_keys
그런 다음 키의 비공개 부분을 클라이언트 컴퓨터에 복사하면 연결할 수 있습니다.
user@client:~/ $ ls -1 .ssh
authorized_keys
config
newkey.key
user@client:~/ $ ssh -i ~/.ssh/newkey.key user@server
편집하다@Haxiel과 @RubberStamp의(그리고 내 자신의) 프로토콜에 따르면 개인 키는 액세스에 사용되는 서버에 남겨두어서는 안 됩니다.
다른 선택의 여지가 없는 한 연결에 사용하는 서버에서 개인 키를 제거하십시오. 이는 보안 문제를 피하기가 매우 쉽습니다.
키는 로컬 시스템에서 생성되어야 하며 공개 키는 scp 또는 ssh-copy-id를 통해 원격 시스템에 복사되어야 합니다. 후자의 옵션은 공개 키가 원격 ~/.ssh에 올바르게 배치되도록 보장하므로 선호됩니다. /authorized_keys 파일 및 파일에 대한 적절한 권한