ssh/git pull 无密码登录 自动拉取

作者:matrix 被围观: 289 次 发布时间:2019-05-28 分类:Linux | 4 条评论 »

测试需要S,C两台服务器,我需要C服务器ssh登录到S服务器进行操作。
目的:服务器C端使用命令git pull无密码登录自动从服务器S拉取最新代码。

客户端生成RSA密钥

服务器C属于客户端角色,需要生成本地服务器的rsa密钥对,然后价格公钥发送到服务器S。
登录服务器C

$ cd ~
$ ssh-keygen -t rsa
#后面就默认回车

默认会在 ~/.ssh中生成id_rsa.pub,id_rsa这两个密钥对。

发送公钥

我之前是手动尝试把公钥文本打来粘贴到服务器S,然而ssh登录的话还是要密码验证。测试发现最好是使用ssh-copy-id命令进行操作。
还是在服务器C进行操作

$ ssh-copy-id -i ~/.ssh/id_rsa.pub login_user@HOST -p 22

说明:
ssh-copy-id命令可以快速的将公钥复制到远程主机
-i 指定公钥路径
login_user 为登录的用户名
HOST 为登录的远程服务器S的地址,域名/IP均可
-p 指定服务器S的ssh端口号

命令输入后应该会让你输入login_user用户的密码,若出现and check to make sure that only the key(s) you wanted were added.则表示公钥应该添加成功。
以免出现问题,现在可以去服务器S端看看,指定用户名login_user的文件/home/login_user/.ssh/authorized_keys会有客户端的rsa公钥。

登录测试

在服务器C操作
测试登录:

ssh login_user@HOST -p 22

若登录成功 BINGO!

其他问题

如出现还是需要密码的情况:

1.需要确定/etc/ssh/sshd_config配置文件中是否允许RSAAuthentication

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

2.用户目录权限问题

.ssh父目录的权限是755(我的是/root),.ssh目录权限是700,authorized_keys文件 600

参考:
https://blog.csdn.net/alifrank/article/details/48241699
https://blog.csdn.net/chengyuqiang/article/details/78432675
https://blog.csdn.net/b_x_p/article/details/78534423
https://www.cnblogs.com/0xcafebabe/p/5234678.html

找相似:
本文固定链接:https://www.hhtjim.com/vps-between-remote-ssh-password-less-logins.html
matrix
本文章由 matrix 于2019年05月28日发布在Linux分类下,目前没有通告,你可以至底部留下评论。
转载请注明:ssh/git pull 无密码登录 自动拉取-HHTjim'S 部落格
关键字:,

有4 条评论 »

  1. 奶爸的笔记 奶爸的笔记 2019-5-28 22:47:10 +0800#1

    👿 我就吐槽一下你的评论框。 https://s2.ax1x.com/2019/05/28/VnFBQg.gif

    • matrix matrix Moderator 2019-5-30 14:29:34 +0800

      真是太好了吧,给我提交这个BUG 😆 😆
      我看看这个是什么原因。

    • matrix matrix Moderator 2019-5-30 17:55:53 +0800

      Windows 7,macos 的Chrome都没看到这个问题 尴尬
      https://s2.ax1x.com/2019/05/30/VMygBt.gif

      • matrix matrix Moderator 2019-5-30 17:57:32 +0800

        为什么我这个录制的gif好糊 🙄 🙄

添加新评论 »

 🙈 😱 😂 😛 😭 😳 😀 😆 👿 😉 😯 😮 😕 😎 😐 😥 😡 😈 💡

插入图片

NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!