1)我的~/.ssh
文件夹具有以下权限:drwx------. 2 user user 4.0K Aug 19 15:39 .ssh
2)我运行ssh-keygen -t rsa
并获取默认文件 id_rsa 和 id_rsa.pub。
3)我将密钥复制粘贴id_rsa.pub
到 GitHub SSH Keys
4)尝试通过连接时,我收到以下信息:ssh -i id_rsa -vT [email protected]
OpenSSH_7.5p1, OpenSSL 1.1.0f-fips 25 May 2017 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Reading configuration data /etc/ssh/ssh_config.d/05-redhat.conf debug1: Reading configuration data /etc/crypto-policies/back-ends/openssh.config debug1: /etc/ssh/ssh_config.d/05-redhat.conf line 8: Applying options for * debug1: Connecting to github.com [192.30.253.113] port 22. debug1: Connection established. debug1: identity file id_rsa type 1 debug1: key_load_public: No such file or directory debug1: identity file id_rsa-cert type -1 debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_7.5
我对如何生成该id_rsa-cert
文件感到怀疑。
我试过
openssl rsa -in ~/.ssh/id_rsa -outform pem > id_rsa-cert
和
openssl req -x509 -key ~/.ssh/id_rsa -nodes -days 9999 -newkey rsa:2048 -out id_rsa-cert
但没用。有什么建议吗?
答案1
我对如何生成 id_rsa-cert 文件有疑问。
您不需要它,当然也不需要它来访问 GitHub。客户端正在寻找以此方式命名的文件,但这并不意味着需要它来进行正常的 SSH 密钥身份验证。为此,您提供的正常 RSA 密钥就足够了。
答案2
该id_rsa-cert
文件通常由系统管理员复制到其正确的位置。
只有当您的基础设施需要由证书颁发机构签名的服务器和客户端密钥时,它才是必需的ssh
。我只遇到过一个使用这种安全级别的实体(军事)。大多数实体不会使用此功能。只有当 IT 部门的某个人非常偏执(军事)时,它才是必需的。
有关 SSH 密钥基础设施的更多信息,请点击以下链接。诚然,这是一篇相当古老的文章。尽管它相对来说有些年头了,但它仍然适用且有意义。