git客户端使用SSH公钥验证方式连接git服务器

管理员

如果不想每次都输入密码,则可参考下面步骤,将验证方式改为 SSH 公钥验证

1.客户端,创建 SSH 公钥和私钥

ssh-keygen -t rsa -C "XXXX@XXX.com"

此时 C:\Users\用户名.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub

id_rsa 是私钥
id_rsa.pub 是公钥

2.服务器端,将 Git 打开 RSA 认证
进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

修改完成后重启 sshd 服务

systemctl restart sshd.service

由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是

/home/git/.ssh/authorized_keys

在 /home/git/ 下创建目录.ssh同时将它的owner改为git

3.最后回到客户端,将刚才生成的公钥导入服务器端

ssh git@你的服务器地址 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub 
#手动复制也可以

这里需要输入一次密码。
如果发现输入密码后,仍显示失败,请确认是否在服务器端禁用了git账户shell登录,如果是,则需要自己手动在服务器端添加公钥

3.最后重新clone项目,已经不需要密码了

如果发现按照以上方法配置后,仍需要输入密码,你优先排除服务端文件权限问题
修改 /home/git 的权限为 700
修改 /home/git/.ssh 目录的权限为 700
修改 /home/git/.ssh/authorized_keys 文件的权限为 600

其它
出于安全考虑,我们在服务器端创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出
大功告成!!!

0人点赞
Linux
管理员

全部评论 0

推荐阅读 更多精彩内容

  • linux centos系统 nginx源码安装和配置
    1.1安装前工作 首先更新系统软件源,使用以下命令更新系统- yum update 依赖包安装; 1.2下载Nginx安装源文件,下载并上传到服务器;1.3新建nginx用户及用户组,使用 root 用户身份登录系统,执行以下命令创建新的用户; 1.4 编译配置、编译、安装。 nginx停止、重启未添加nginx服务前对nginx的管理只能通过一下方式管理...
    2021-01-13 11:10:22 管理员
  • linux centos系统 PHP8源码安装配置
    linux centos系统 PHP8源码安装配置。php8下载,解压压缩包,安装依赖,源码编译、安装,查看安装成功后的版本信息,修改配置,需要对`php.ini`配置进行配置修改,请自行参考官方文档配置,启用php-fpm服务,Nginx代理集成PHP8配置。重启php...
    2021-01-16 16:26:38 管理员
  • linux centos系统 MySQL8.0安装
    linux centos系统 MySQL8.0安装。下载mysql安装源文件,MySQL数据库设置,修改数据库密码,在CentOS中mysql的主要配置所在的目录。...
    2021-04-29 15:27:53 管理员
  • linux centos系统 安装php8遇到的问题
    安装php找不到 No package 'sqlite3' found,安装php找不到 No package 'oniguruma' found解决...
    2021-04-29 15:36:03 管理员
  • 阿里云ssl证书部署,ssl证书nginx配置
    阿里云ssl证书部署,ssl证书nginx配置,通过return 301重定向方式把所有http请求也转成https请求,nuxt vue应用nginx https相关配置...
    2021-05-05 17:36:06 管理员