GIT SSH免登录密码实现更新(git pull)、推送(git push)操作
一、使用场景
现在有两台服务器A和B,在A服务器上搭建有git版本代码仓库,现要实现B服务器SSH免密码登录A服务器,并能够从A服务器拉取、推送代码!
二、操作步骤
1、在B服务器项目根目录下执行以下命令生成公钥和私钥:
git config --global user.name "test"
git config --global user.email "test@qq.com"
ssh -keygen -t rsa // 连续回车三次
2、将生成的rsa.pub的内容拷贝到A服务器下/home/git/.ssh/authorized_keys文件中,保存即可;
3、在B服务器项目根目录下的.git目录配置config文件:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@A服务器的IP:/home/git/repositories/test
[branch "master"]
remote = origin
merge = refs/heads/master
注意红色字体部分,表示用git用户SSH认证方式登录到A服务器,所以在步骤2中要将公钥信息放到/home/git目录下!
三、常见问题
1、如果A服务器的SSH服务的端口号发生了变化,比如修改为18898,而不是默认的22,那么B服务器要做哪些修改呢?
答:在B服务器中进入项目根目录的所有者用户(例如www用户)的主目录(一般为home/www,根据/etc/passwd设置而定)/.ssh,使用vi config输入“port 18898”保存文件即可!