인증서 기반 SSH 인증에는 여전히 개인 키 파일이 필요합니다.

인증서 기반 SSH 인증에는 여전히 개인 키 파일이 필요합니다.

내가 읽은 대부분의 장소에서는 사용자의 자격 증명만 사용하여 로그인할 수 있어야 합니다. 루프백 로그인을 테스트하기 위해 다음 튜토리얼을 따랐습니다.https://goteleport.com/blog/how-to-configure-ssh-certificate-based-authentication/그리고 제가 핵심 개념을 잘못 이해했다는 사실을 발견했습니다.

You'll need both [the signed user certificate] and the private key for logging in.

파일 옆에 ssh키가 없으면 성공할 수 없습니다 . 루트 설정에 등록된 키가 없기 때문에 암호 없이 명시적으로 해당 인증서를 사용할 수 있도록 인증서와 개인 사용자를 포함시켰습니다. 에 등록된 인증서를 사용합니다. 또한 그렇지 않거나 나만큼 성공했습니다.id_rsaid_rsa-cert.pubrootssh root@host/etc/ssh user@hostknown_hostsauthorized_keys/etc/ssh/sshd_config

TrustedUserCAKeys /etc/ssh/user-ca.pub
HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub

그리고 Everywhere I have read that should be able to login just with the user certificate/etc/ssh/ssh_known_hosts`에 있는 인증 기관의 공개 키에서:

@cert-authority * $(</etc/ssh/host-ca.pub)

id_rsa나는 과거에 참석하지 않고 로그인한 적이 있다고 확신합니다 . 문서만으로 인증이 성공할 수 있나요 ~/.ssh/id_rsa-cert.pub? 그렇다면 이 튜토리얼에서 누락된 것은 무엇입니까?

답변1

대답: 당신은 필요합니다둘 다인증서 기반 인증을 위한 키 id_rsa및 인증서 . id_rsa-cert.pub패킷을 암호화하려면 항상 키가 필요하며 인증서는 제3자가 신뢰할 수 있는 식별자를 서버에 제공합니다.

로그인할 때 사용자 인증서와 해당 개인 키가 필요합니다.OpenSSH 레시피

이 경우 인증서를 사용하면 이전에 알지 못했던 서버에 로그인할 수 있으며(원격 호스트의 홈 디렉터리 파일에 공개 키를 등록할 필요가 없음 authorized_keys), 서명 기관은 해당 서버에 대한 액세스 또는 시간 제한을 제공할 수 있습니다. 입장. 당신이 가장할 수 있는 사람( Principal지침).

답변2

Unix/Linux 및 MacOS에서 OpenSSH 클라이언트를 사용하면 개인 키 파일 을 ssh-agent.ssh-agent

Windows의 OpenSSH 클라이언트는 ssh-agentWindows LSASS 캐시의 특정 재구현을 기반으로 하기 때문에 다르게 동작합니다.

그게 내 이유야EKCA 클라이언트ssh-agentWindows에서 실행하는 경우 개인 키 파일은 로드 후 삭제되지 않습니다. (에카단기 OpenSSH 사용자 인증서를 발급하기 위한 나만의 최소한의 솔루션입니다. )

관련 정보