내가 읽은 대부분의 장소에서는 사용자의 자격 증명만 사용하여 로그인할 수 있어야 합니다. 루프백 로그인을 테스트하기 위해 다음 튜토리얼을 따랐습니다.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_rsa
id_rsa-cert.pub
root
ssh root@host
/etc/
ssh user@host
known_hosts
authorized_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-agent
Windows LSASS 캐시의 특정 재구현을 기반으로 하기 때문에 다르게 동작합니다.
그게 내 이유야EKCA 클라이언트ssh-agent
Windows에서 실행하는 경우 개인 키 파일은 로드 후 삭제되지 않습니다. (에카단기 OpenSSH 사용자 인증서를 발급하기 위한 나만의 최소한의 솔루션입니다. )