使用ssh协议搭建git服务器
使用ssh协议搭建git服务器
参考https://blog.csdn.net/hhhzua/article/details/79471997
参考http://www.worldhello.net/gotgit/05-git-server/030-ssh.html
1. 前提说明
业务需要,临时的将一台电脑当作git服务器,作为代码仓库
使用ssh协议作为客户端和服务端连接的协议
以下只说干货,没有学习讲解
确保安装了ssh服务
2. 服务端的搭建
-
设置服务器的权限
-
修改ssh文件夹权限
chmod 700 ~/.ssh/
-
修改文件权限
chmod 600 ~/.ssh/authorized_keys
如果没有以上文件,说明没有ssh服务,请安装
- 修改sshd_config配置文件,使得注册公钥的客户端可以直接登录
sudo vim /etc/ssh/sshd_config
修改
PubkeyAuthentication yes
AuthorizedKeysFile ~/.ssh/authorized_keys
-
-
重启 sshd服务
sudo service sshd restart
-
创建git仓库文件
选择一个目录进行创建.git
git init --bare sample.git注意的是命令是用于创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库只保存git历史提交的版本信息,纯粹是为了共享,所以不让用户直接登录到服务器上去改工作
3. 客户端的搭建
客户端因为需要登录 服务端,所有ssh的公钥 私钥肯定要有
-
执行 ssh-keygen -o
ssh-keygen -o
一直Enter就行
然后就会发现~/.ssh 下面生成了默认的id_rsa id_rsa.pub
- 我们要把公钥 id_rsa.pub给服务端,注册在服务端,之后访问服务端的时候 就不需要输入密码了
两种办法,name是 服务端的用户名称 server是ip地址
-
客户端自己进行拷贝,需要客户端知道服务端用户的密码
$ ssh-copy-id -i ~/.ssh/id_rsa.pub name@server输入密码然后完成
-
在服务端上操作, 追加到authorized_keys中
cat id_rsa.pub >> ~/.ssh/authorized_keys
-
问题
如果出现
sign_and_send_pubkey: signing failed: agent refused operation
执行 ssh-add ~/.ssh/id_rsa
-
拉取git仓库
两种写法
语法1: ssh://[<username>@]<server>[:<port>]/path/to/repos/myrepo.git 语法2: [<username>@]<server>:/path/to/repos/myrepo.git/path/to/repos/myrepo.git是服务器中版本库的绝对路径。若用相对路径则相对于username用户的主目录而言。这里我使用语法2:
git clone vr@192.168.170.57:VoiceData/vr.git

浙公网安备 33010602011771号