我有 PEM 格式的 DSA 私钥。接下来我该怎么做才能无需密码访问 SSH?
PEM 格式的证书示例: http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/sample-priv-key.htm
答案1
啊——我认为您混淆了 ssh 证书和 ssl 证书。
ssh 使用两种主要的双因素身份验证密钥形式:1)标准 RSA 或 DSA 密钥对(公钥、私钥)或 2)ssh 证书(根据man ssh-keygen
)
...由一个公钥、一些身份信息、零个或多个主体(用户或主机)名称以及一组可选的约束组成,这些约束由认证机构(CA)密钥签名。
它继续说:
请注意,OpenSSH 证书的格式与 ssl(8) 中使用的 X.509 证书不同,而且格式更简单。
要生成普通 ssh 密钥对,请执行以下操作:
ssh-keygen -t rsa -b 2048 -f test
建议使用密码保护私钥。
然后,通过将公钥(test.pub
在本例中)放在目标主机用户登录主目录中的 ~/.ssh/authorized_keys 文件中,如果 sshd 配置为允许这样做,您应该能够在没有密码的情况下登录到目标主机。
ssh -i test user@host
要生成ssh 证书,请执行以下操作:
ssh-keygen -f ca_key
# 生成一个 ssh 密钥对作为证书使用- 生成主机密钥
ssh-keygen -s ca_key -I cert_identifier -h host_key.pub
- 在服务器的 sshd 配置文件中指定主机密钥:
TrustedUserCAKeys /etc/ssh/ssh_cert/host_key.pub
- 生成本地证书以使用 ssh 证书访问主机:
ssh-keygen -s ca_key -I cert_identifier user_key.pub
。这应该会生成 user_key-cert.pub
假设这一切都已正确进行,ssh -i user_key user@host
将使用 user_key-cert.pub 文件,登录将自动进行(如果服务器允许)。服务器将记录来自证书标识符如果这样配置的话。
ssh 证书是一项新功能,仍然需要解决一些可用性方面的问题。其优点包括中央签名密钥、通过 authorized_keys 限制连接的替代方案以及限制 ssh 证书有效期的可能性。
答案2
这可能会帮助你 -关联
或者您ssh-copy-id user@host
也可以使用。