Linux服务器配置之Git服务器搭建(2)

sudo service sshd restart #重启sshd服务

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

[root@ceontOS ~]# cd /home/git
[root@ceontOS git]# pwd
/home/git
[root@ceontOS git]# mkdir .ssh
[root@ceontOS git]# ls -a
. .. .bash_logout .bash_profile .bashrc repository .ssh

然后把 .ssh 文件夹的 owner 修改为 git

[root@ceontOS git]# chown -R git:git .ssh
[root@ceontOS git]# ll -a | grep .ssh
drwxr-xr-x 2 git git 4096 Jan 13 14:54 .ssh

* **7、将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件** 回到客户端Git Bash 下,导入文件:

$ ssh git@服务器公网IP地址 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa_git.pub

![](?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 回到服务器端,查看 .ssh 下是否存在 authorized_keys 文件:

[root@ceontOS ~]# cd /home/git/.ssh/
[root@ceontOS .ssh]# ll
total 4
-rw-rw-r-- 1 git git 398 Jan 13 15:03 authorized_keys
[root@ceontOS .ssh]# cat authorized_keys #查看客户端生成的公钥

**重要:** **修改 .ssh 目录的权限为 700** **修改 .ssh/authorized_keys 文件的权限为 600**

[root@ceontOS git]# chmod 700 .ssh
[root@ceontOS git]# cd .ssh/
[root@ceontOS .ssh]# chmod 600 authorized_keys

* **8、客户端再次 clone 远程仓库**

git clone git@118.178.142.77:/home/git/repository/gittest.git

![](?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * **9、禁止 git 用户 ssh 登录服务器** 之前在服务器端创建的 git 用户不允许 ssh 登录服务器 编辑 /etc/passwd

[admin@ceontOS ~]$ su root #切换到root用户
Password:
[root@ceontOS admin]# sudo vi /etc/passwd #编辑/etc/passwd文件

找到:

git:x:1001:1001::/home/git:/bin/bash

修改为:

git:x:1001:1001::/home/git:/bin/git-shell

此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统。

更多Git 教程系列文章: 

Git常用命令整理 

GitHub 使用教程图文详解   

Git使用图文详细教程 

Ubuntu Git安装与使用

分享实用的GitHub 使用教程  

Git从入门到学会

Git基本操作详解

Git部署与常用基本命令详解   

分布式版本控制系统 Git 详细教程 

Git命令和配置技巧 

Git 的详细介绍请点这里
Git 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/96a4df952735ac2235b706a2e5cb6546.html