인증을 위한 추가 키 쌍 추가

인증을 위한 추가 키 쌍 추가

서버에 로그인할 수 있는 추가 호스트를 위해 새 키 쌍이 필요합니다(그러나 보안상의 이유로 기존 키 쌍을 공유할 수는 없습니다).

이제 서버에서 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 파일 및 파일에 대한 적절한 권한

관련 정보