SSH密钥登录服务器的一些坑 | Git使用心得

332 阅读1分钟

密钥登录时遇到的问题

  • 大坑!设置服务器使用密钥登录时,需要更改authorized_keys文件和.ssh文件夹的权限
chmod 600 authorized_keys
chmod 700 ~/.ssh

当然还需要设置/etc/ssh/sshd\_config这个文件,将PubkeyAuthentication yes的注释去掉、将AuthorizedKeysFile .ssh/authorized\_keys 注释去掉

  • id_rsa文件的默认权限是600,如果改成其他的话会报出以下错误
    [root@backup .ssh]# ssh -p 6022 inboc@10.11.1.15
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    Permissions 0644 for '/root/.ssh/id_rsa' are too open.
    It is required that your private key files are NOT accessible by others.
    This private key will be ignored.
    Load key "/root/.ssh/id_rsa": bad permissions
    Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

Git使用问题

  • 奇怪的错误,运行以下时报错
    (base) ➜  pytest git:(main) git push -u origin "master"

    error: src refspec master does not match any
    error: failed to push some refs to 'main'

这个错误来自于使用Gitee时,默认的仓库提交提示是git puish -u origin "master",但是实际上要将master换成main,即git push -u origin main就能提交到远程仓库

暂不清楚原因

找到了一个解释

  • git push 主要对git push -u origin main这一命令进行解释: -u指的是设定默认值,此处设为origin main后之后若直接使用git push,则是默认向该远程分支push。 origin是之前提到的在git init时git会将远程仓库地址的URL别名为origin,可用于快速访问。 main表示的是分支。