我读过的大多数地方都应该能够仅使用用户证书登录。测试环回登录我遵循了以下教程: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
指令)。