下面的操作,涛哥是在ubuntu上操作,不一定适应任何系统
一、假定git远程仓库已经搭建好,目录为/home/git下
二、创建本地ssh公钥和私钥(git本地)
1 2 3 |
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" // 1024就够了,涛哥认为没必要弄那么长 回车回车,执行完了,会在~/.ssh目录下生成id_rsa和id_rsa.pub两个文件 |
三、把小组成员生成的ssh公钥放到/home/git/.ssh/authorized_keys文件
1、小组成员的公钥id_rsa.pub >> ~/.ssh/authorized_keys
2、在/home/git下创建.ssh目录以及.ssh/authorized_keys文件(远程仓库)
1 2 3 4 5 6 7 |
比如小组内成员的ssh公钥有 zyt.pub lee.pub vellw.pub 使用如下命令写入.ssh/authorized_keys cat zyt.pub >> /home/git/.ssh/authorized_keys //追加的方式 |
四、指定本地私钥配置管理
ssh 指定私钥的配置管理,为本地添加 ssh 别名,编辑 ~/.ssh/config ,如果没有该文件,创建一个:
在 config 中添加:
1 2 3 4 5 6 |
# 注释说明 https://www.phpnote.cc Host 别名 HostName 域名或 ip User 登陆服务器用的账号 Port 端口号(默认22,可以不填,如果服务器修改了 ssh 登录端口号,此处需要修改) IdentityFile 密钥文件的位置 |
例如设置为:
1 2 3 4 5 6 |
# phpnote's git server Host phpnote HostName 192.168.36.100 User git Port 22 IdentityFile ~/.ssh/id_rsa |
现在,可以通过 git clone 命令克隆远程仓库了:
1 |
$ git clone ssh://git@phpnote:/home/git/project.git |
不再需要输入git的密码,直接push/pull是件多么爽的事情,更多待涛哥实践总结。
git添加公钥后报错sign_and_send_pubkey: signing failed: agent refused operation的解决办法
1 2 |
eval "$(ssh-agent -s)" ssh-add |
转载请注明:PHP笔记 » Git服务器免密码SSH登录PUSH/PULL操作