美文网首页
SSH 认证顺序 (git 公钥配置出错)

SSH 认证顺序 (git 公钥配置出错)

作者: WqyJh | 来源:发表于2018-09-06 17:35 被阅读0次

    1. 问题

    之前解决一个 SSH 认证顺序 导致的问题时,修改了 ssh 的认证顺序,没想到又引入了新的问题。

    上次的解决方案是在 /etc/ssh/ssh_config 里配置认证方法的顺序,将密码认证放在秘钥认证之前。

    PreferredAuthentications password,publickey,gssapi-keyex,gssapi-with-mic
    

    但是 git 使用私钥连接服务器的时候,会要求输入密码,并且在三次输错密码后,可以连接成功。显然这是认证顺序的问题,如果先使用公钥认证,就不会有这个问题。

    wqy@wqy-PC:~$ ssh -T git@192.168.9.155
    git@192.168.9.155's password: 
    Permission denied, please try again.
    git@192.168.9.155's password: 
    Permission denied, please try again.
    git@192.168.9.155's password: 
    Welcome to GitLab, Qiying Wang!
    

    2. 分析

    这两次遇到的问题的本质是不同场景下,应该优先使用秘钥登录还是密码登录的问题。

    使用密码登录服务器的时候,应该优先使用密码登录。

    使用 git 的时候,应该优先使用秘钥登录。

    3. 解决方案

    修改 /etc/ssh/ssh_config

        ... # other configuration
        
        PreferredAuthentications password,publickey,gssapi-keyex,gssapi-with-mic
    
    Match User git
        PasswordAuthentication no
    

    由于我更多使用密码登录服务器,因此我设置密码登录优先于秘钥登录。

    但是对于 git 用户,我禁止它用密码登录。

    4. License

    本作品采用知识共享 署名-非商业性使用-相同方式共享 2.5 中国大陆 许可协议进行许可。要查看该许可协议,可访问 http://creativecommons.org/licenses/by-nc-sa/2.5/cn/ 或者写信到 Creative Commons, PO Box 1866, Mountain View, CA 94042, USA。

    相关文章

      网友评论

          本文标题:SSH 认证顺序 (git 公钥配置出错)

          本文链接:https://www.haomeiwen.com/subject/lcaxgftx.html