Git 将SSH密钥添加到authorized_keys:权限被拒绝(publickey)
在本文中,我们将介绍如何将SSH密钥添加到Git的authorized_keys文件中,以解决”permission denied(publickey)”权限被拒绝的问题。
阅读更多:Git 教程
SSH密钥简介
SSH密钥是一种安全的身份验证方式,用于连接和验证远程服务器。SSH密钥由一对公钥和私钥组成。公钥存储在服务器上的~/.ssh/authorized_keys文件中,私钥保存在本地电脑上用于验证身份。
SSH密钥生成
要连接远程Git服务器,首先需要在本地生成SSH密钥对。可以通过以下命令生成SSH密钥:
其中,-t
参数指定密钥类型为RSA,-C
参数用于添加注释,可以替换成你的电子邮件地址。
执行命令后,系统会提示你选择密钥文件保存位置和设置密码。如果不需要密码,直接敲击回车键即可。
添加SSH公钥到Git服务器
成功生成SSH密钥后,需要将公钥添加到远程Git服务器的authorized_keys文件中。这样,当你尝试连接服务器时,Git服务器就会验证你的身份并授予访问权限。
首先,通过SSH连接到服务器。使用以下命令:
其中,username
是你的用户名,server_ip_address
是Git服务器的IP地址。
连接成功后,进入到用户主目录,使用以下命令创建一个.ssh文件夹(如果还不存在):
然后,打开authorized_keys文件:
在这个文件中,将你本地电脑生成的公钥内容粘贴进去。然后保存并关闭文件。
现在,你可以尝试重新连接远程Git服务器,应该就不再收到”permission denied(publickey)”的错误消息了。
问题排查
如果添加SSH公钥后,仍然遇到”permission denied(publickey)”错误,可以尝试排查以下问题和解决方法:
- 检查密钥权限:确保你的公钥(~/.ssh/id_rsa.pub)权限为600,私钥(~/.ssh/id_rsa)权限为400。可以使用以下命令修改权限:
- 检查authorized_keys文件权限:确保authorized_keys文件权限为600。使用以下命令修改权限:
- 检查密钥格式:确保你在authorized_keys文件中粘贴的是正确的公钥内容,格式如下:
其中,<public_key>
是你的公钥内容,<optional_comment>
是可选的注释。
- 检查Git服务器配置:确保Git服务器上的sshd配置文件中启用了PubkeyAuthentication。可以通过编辑配置文件/etc/ssh/sshd_config并确保以下行没有注释掉:
修改后,重启SSH服务。
总结
通过本文的介绍,我们学习了如何将SSH密钥添加到Git的authorized_keys文件中以解决”permission denied(publickey)”权限被拒绝的问题。首先,我们生成了SSH密钥对,然后将公钥添加到Git服务器的authorized_keys文件中。此外,我们还讨论了可能遇到的问题和解决方法。通过正确配置SSH密钥,我们可以顺利连接和验证远程Git服务器,确保数据传输的安全性和可靠性。