美文网首页
Git SSH Key的配置问题

Git SSH Key的配置问题

作者: 子宇楚歌 | 来源:发表于2019-01-30 23:13 被阅读0次

    生成SSH key

    1. 首先在本地生成SSH key,-C参数是邮箱地址,不过其实可以随便填

    ssh-keygen -C 'xxx@xxx.com'

    2. 然后出来个问题:

    Enter file in which to save the key (/Users/chuckie/.ssh/id_rsa):

    直接回车

    3. 如果之前生成过SSH key,再来个问题:

    ~/.ssh/id_rsa already exists.

    Overwrite (y/n)?

    输入y覆盖

    4. 一路回车就可以创建成功了

    5. 登录gitlab,github等git仓库,在个人中心找到settings -> SSH keys,不同服务器大同小异

    6. 选择新建SSH key将之前生成的ssh key拷进去,title自己随便改。SSH key文件的位置创建的时候有出现过,默认在用户的主目录下有个.ssh/id_rsa.pub,windows:C:\Users\Administrator\.ssh,linux:~/.ssh/id_rsa.pub

    解决SSH key不生效的问题

    好了,重点来了。运气好的话,跑完上面的步骤,再用git拉取或者推送远程代码就不用手动输入用户名密码了。不过有的时候会出现不生效的情况,还是提示要输入用户名密码,这是因为本地ssh agent里的key没有刷新,这里讲一下怎么解决。

    1. 添加SSH key

    ssh-add (如果key存放路径不是默认的话,这里可以指定路径)

    2. 这里可能会遇到错误

    Could not open a connection to your authentication agent

    运行命令

    ssh-agent bash //或者 eval "$(ssh-agent -s)"

    后重新ssh-add

    SSH key不生效的其他原因

    一、linux上.ssh文件夹及其中的文件有权限要求,检查一下权限是否符合要求

        1. .ssh目录的权限必须是700

        2. .ssh/authorized_keys文件权限必须是600

    二、有一次我在拉取远程代码的时候手贱按了个ctrl+c强制退出,结果再尝试就开始要手动输入用户名密码了,不过这个简单,输了一次之后就不用再输了

    Git报500 error

    拉取或者推送代码时失败,出现如下error信息

    error: RPC failed; HTTP 500 curl 22 The requested URL returned error: 500 Internal Server Error

    这个可能是数据量太大,用Http方式对数据量有限制,可以通过修改远程url改成用ssh方式连接

    git remote set-url origin git@github.com:(group)/(repository).git

    具体url可以在repository首页找到,有时需要加`ssh://`协议前缀

    使用http方式输入用户名密码错误

    解决方法:关掉输入框,会提示命令行输入,使用命令行输入用户名密码成功登录。

    同样的用户名密码使用输入框输入会登录失败,原因不明。

    相关文章

      网友评论

          本文标题:Git SSH Key的配置问题

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