干货分享,灵感创作,不定期更新,敬请期待。

git ssh协议无密码push(pull)

git xhq 4915℃ 0评论

git有多种协议,github一般采用https协议,push需要用户名和密码,也可以使用ssh协议,可以实现免密码认证,这里讲自己在Linux搭建的git服务。

ssh密钥验证登陆
A 为客户机,B 为服务器
A操作
ssh-keygen -t rsa
生成id_rsa 和 id_rsa.pub
id_rsa.pub上传到B

B中操作(如git用户为gits,一般目录为/home/gits,如果木有相应的文件夹自己创建,赋予gits读取authorized_keys的权限)

cat id_rsa.pub >> /home/gits/.ssh/authorized_keys

去掉/etc/ssh/sshd_config中的注释

RSAAuthentication yes
PubkeyAuthentication yes

注意

StrictModes no

StrictModes 设置为no,否则会强制要求登录用户和文件拥有者用户相同,反正我也没弄懂

重启或重新加载ssh配置
service sshd restart|reload
注意:为保证authorized_keys中的内容和客户机的公钥一致最好采用上传后追加内容,
否则在客户机中复制的话请在文本编辑器打开并全选复制(本人在vim中因为复制不全搞了很久)

另外的话:

客户端和服务端是可以在同一台机器,大家可以试试,比如我就习惯这样部署,方便在服务器上版本回滚

转载请注明:爱游思 » git ssh协议无密码push(pull)

喜欢 (2)

您必须 登录 才能发表评论!