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
[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
$ 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 #查看客户端生成的公钥
[root@ceontOS git]# chmod 700 .ssh
[root@ceontOS git]# cd .ssh/
[root@ceontOS .ssh]# chmod 600 authorized_keys
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 教程系列文章:
Ubuntu Git安装与使用