SSH 공개 키 인증에 대해 질문이 있습니다. 다음과 같이 RHEL 9 시스템에서 키 쌍(비밀번호로 보호됨)을 생성했습니다.
ssh-keygen -f .ssh/key2
그런 다음 공개 키를 원격 호스트에 복사합니다.
ssh-copy-id -i .ssh/key2.pub operator1@servera
이제 연결하려고 하면 여전히 키 비밀번호를 묻는 메시지가 나타납니다.
ssh -i .ssh/key2 operator1@servera
실행 중에 -v 옵션을 추가하면 서버가 키를 수락했음을 나타냅니다.
No Kerberos credentials available (default cache: KCM:)
debug1: No credentials were supplied, or the credentials were unavailable or inaccessible
No Kerberos credentials available (default cache: KCM:)
debug1: Next authentication method: publickey
debug1: Offering public key: .ssh/key2 RSA SHA256:wzFYOSGEvzLSjgKe5EGlKXXuaWmFmG8E6gfxs2KG6Pg explicit
debug1: Server accepts key: .ssh/key2 RSA SHA256:wzFYOSGEvzLSjgKe5EGlKXXuaWmFmG8E6gfxs2KG6Pg explicit
그러면 왜 비밀번호를 물어보나요? 참고 사항: .ssh 폴더에 권한을 부여했습니다.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/key2
답변1
SSH 비밀번호로 보호된 키입니다. 키를 직접 사용하거나 SSH 에이전트에 로드할 때 ssh
키를 생성하는 데 사용한 비밀번호를 제공하여 잠금을 해제해야 합니다.
비밀번호를 사용할 때 비밀번호를 제공하지 않으려면 ssh
다음 명령을 사용하여 이미 실행 중인 SSH 에이전트에 비밀번호를 로드하세요.
ssh-add ~/.ssh/key2
그러면 키의 비밀번호를 묻는 메시지가 표시됩니다.한 번을 사용 하면 ssh
대화형으로 비밀번호를 다시 입력할 필요 없이(에이전트가 종료되거나 에이전트에서 키가 제거될 때까지) 적절한 원격 호스트에 연결할 수 있습니다.
댓글에서는 공개키가 원격 시스템에 복사되었기 때문에 SSH 키에 대한 비밀번호를 제공할 필요가 없다고 생각하시는 것 같습니다. 필요한 경우( ssh
프록시 없이 연결하는 경우 또는 키를 프록시에 로드하는 경우) 키의 비밀번호를 제공해야 합니다 . 키가 비밀번호로 보호되어 있는지 여부에 관계없이 SSH 키 인증을 사용하려면 먼저 공개 키가 원격 시스템에 있어야 합니다.