私が読んだほとんどの場所では、ユーザーの資格情報だけを使用してログインできる必要があります。ループバックログインをテストするには、次のチュートリアルに従いました。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
パケットを暗号化するには常にキーが必要であり、証明書はサードパーティが信頼できる識別子をサーバーに提供します。
ログインするときは、ユーザー証明書と対応する秘密鍵が必要です。OpenSSHレシピ
この場合、証明書を使用すると、以前に知らなかったサーバーにログインでき(リモートホストのホームディレクトリファイルに公開鍵を登録する必要はありませんauthorized_keys
)、署名機関はそのサーバーへのアクセスまたはタイムアウトを提供できます。 。入場。あなたが偽装できる人(Principal
指示)。
答え2
Unix / LinuxとMacOSでOpenSSHクライアントを使用すると、秘密鍵ファイルをssh-agent
。ssh-agent
WindowsのOpenSSHクライアントは、ssh-agent
Windows LSASSキャッシュの特定の再実装に基づいているため、動作が異なります。
それが私の理由です。EKCAクライアントssh-agent
Windowsで実行している場合、秘密鍵ファイルはロード後に削除されません。 (エカ短期のOpenSSHユーザー証明書を発行するための独自の最小限のソリューションです。 )