我最近一直在尝试 Hashicorp Vault,发现它非常有用。
我正在尝试设置签名的 ssh 证书以登录到我的远程主机/服务器,按照本指南操作:
https://developer.hashicorp.com/vault/docs/secrets/ssh/signed-ssh-certificates
我将 Vault 的公共 .pem 文件发送到我想要登录的目标主机,并使用 TrustedUserCAKeys /etc/ssh/trusted-user-ca-keys.pem 在 /etc/ssh/sshd_config 中指向它
我在客户端上生成了一对公私钥。我按照该指南在我的 Vault 服务器上获取了由 Vault 签名的公钥,并将其发送回客户端。
我能够使用密码或私钥 ssh 顺利进入目标主机。我无法使用签名的公钥进行 ssh,也无法强制它仅使用该方法。
以下是我尝试添加到主机(Debian)/etc/ssh/sshd_config 设置文件的命令:usePAM no PasswordAuthentication no ChallengeResponseAuthentication no PubKeyAuthentication no
这是我正在使用的 ssh 命令:ssh -v -o “IdentityOnly yes” -o CertificationFile=“/path/to/signedcert.pub” -i “/path/to/privatekey” user@IP
-v 输出表明它尝试了各种选项,但最终签名的证书不起作用,它又回到了密码验证(这对我来说也不清楚,因为我认为 sshd_config 中的命令足以禁用它……)。我在目标主机上进行这些更改时运行了 sudo systemctl restart sshd。
任何建议或意见都将不胜感激,因为我感觉很困惑,但可能忽略了一些显而易见的东西……
感谢您的帮助!
按照问题讨论中的解决方案。
确保公共和私有证书/ID 所在的文件和目录具有合理的权限。
0600
对于文件、0700
对于目录,包括上一步目录的父目录都不可组写入。