Git 将SSH密钥添加到authorized_keys:权限被拒绝(publickey)

Git 将SSH密钥添加到authorized_keys:权限被拒绝(publickey)

在本文中,我们将介绍如何将SSH密钥添加到Git的authorized_keys文件中,以解决”permission denied(publickey)”权限被拒绝的问题。

阅读更多:Git 教程

SSH密钥简介

SSH密钥是一种安全的身份验证方式,用于连接和验证远程服务器。SSH密钥由一对公钥和私钥组成。公钥存储在服务器上的~/.ssh/authorized_keys文件中,私钥保存在本地电脑上用于验证身份。

SSH密钥生成

要连接远程Git服务器,首先需要在本地生成SSH密钥对。可以通过以下命令生成SSH密钥:

ssh-keygen -t rsa -C "your_email@example.com"
Bash

其中,-t参数指定密钥类型为RSA,-C参数用于添加注释,可以替换成你的电子邮件地址。

执行命令后,系统会提示你选择密钥文件保存位置和设置密码。如果不需要密码,直接敲击回车键即可。

添加SSH公钥到Git服务器

成功生成SSH密钥后,需要将公钥添加到远程Git服务器的authorized_keys文件中。这样,当你尝试连接服务器时,Git服务器就会验证你的身份并授予访问权限。

首先,通过SSH连接到服务器。使用以下命令:

ssh username@server_ip_address
Bash

其中,username是你的用户名,server_ip_address是Git服务器的IP地址。

连接成功后,进入到用户主目录,使用以下命令创建一个.ssh文件夹(如果还不存在):

mkdir -p ~/.ssh
Bash

然后,打开authorized_keys文件:

nano ~/.ssh/authorized_keys
Bash

在这个文件中,将你本地电脑生成的公钥内容粘贴进去。然后保存并关闭文件。

现在,你可以尝试重新连接远程Git服务器,应该就不再收到”permission denied(publickey)”的错误消息了。

问题排查

如果添加SSH公钥后,仍然遇到”permission denied(publickey)”错误,可以尝试排查以下问题和解决方法:

  1. 检查密钥权限:确保你的公钥(~/.ssh/id_rsa.pub)权限为600,私钥(~/.ssh/id_rsa)权限为400。可以使用以下命令修改权限:
chmod 600 ~/.ssh/id_rsa.pub
chmod 400 ~/.ssh/id_rsa
Bash
  1. 检查authorized_keys文件权限:确保authorized_keys文件权限为600。使用以下命令修改权限:
chmod 600 ~/.ssh/authorized_keys
Bash
  1. 检查密钥格式:确保你在authorized_keys文件中粘贴的是正确的公钥内容,格式如下:
ssh-rsa <public_key> <optional_comment>
Bash

其中,<public_key>是你的公钥内容,<optional_comment>是可选的注释。

  1. 检查Git服务器配置:确保Git服务器上的sshd配置文件中启用了PubkeyAuthentication。可以通过编辑配置文件/etc/ssh/sshd_config并确保以下行没有注释掉:
PubkeyAuthentication yes
Bash

修改后,重启SSH服务。

总结

通过本文的介绍,我们学习了如何将SSH密钥添加到Git的authorized_keys文件中以解决”permission denied(publickey)”权限被拒绝的问题。首先,我们生成了SSH密钥对,然后将公钥添加到Git服务器的authorized_keys文件中。此外,我们还讨论了可能遇到的问题和解决方法。通过正确配置SSH密钥,我们可以顺利连接和验证远程Git服务器,确保数据传输的安全性和可靠性。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册