我有 PEM 格式的 DSA 私钥。接下来我该怎么做才能无需密码访问 SSH?

我有 PEM 格式的 DSA 私钥。接下来我该怎么做才能无需密码访问 SSH?

我有 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 证书,请执行以下操作:

  1. ssh-keygen -f ca_key# 生成一个 ssh 密钥对作为证书使用
  2. 生成主机密钥 ssh-keygen -s ca_key -I cert_identifier -h host_key.pub
  3. 在服务器的 sshd 配置文件中指定主机密钥: TrustedUserCAKeys /etc/ssh/ssh_cert/host_key.pub
  4. 生成本地证书以使用 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也可以使用。

相关内容