証明書ベースの 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パケットを暗号化するには常にキーが必要であり、証明書はサードパーティが信頼できる識別子をサーバーに提供します。

ログインするときは、ユーザー証明書と対応する秘密鍵が必要です。OpenSSHレシピ

この場合、証明書を使用すると、以前に知らなかったサーバーにログインでき(リモートホストのホームディレクトリファイルに公開鍵を登録する必要はありませんauthorized_keys)、署名機関はそのサーバーへのアクセスまたはタイムアウトを提供できます。 。入場。あなたが偽装できる人(Principal指示)。

答え2

Unix / LinuxとMacOSでOpenSSHクライアントを使用すると、秘密鍵ファイルをssh-agentssh-agent

WindowsのOpenSSHクライアントは、ssh-agentWindows LSASSキャッシュの特定の再実装に基づいているため、動作が異なります。

それが私の理由です。EKCAクライアントssh-agentWindowsで実行している場合、秘密鍵ファイルはロード後に削除されません。 (エカ短期のOpenSSHユーザー証明書を発行するための独自の最小限のソリューションです。 )

関連情報