美文网首页我爱编程
git:ssh与https设置

git:ssh与https设置

作者: 走在路上的日子 | 来源:发表于2018-05-28 10:29 被阅读0次

    git作为当前最受欢迎的版本控制软件,使用是很频繁的。但是有的小伙伴发现每次使用git push等操作时都要输入密码,实在是麻烦。这里对使用SSH与HTTPS两种通讯协议介绍一下免密码配置

    区别

    1.clone项目:使用ssh方式时,首先你必须是该项目的管理者或拥有者,并且需要配置个人的ssh key。而对于使用https方式来讲,就没有这些要求。

    2.push:在使用ssh方式时,是不需要验证用户名和密码,如果你在配置ssh key时设置了密码,则需要验证密码。而对于使用https方式来讲,每次push都需要验证用户名和密码。

    配置ssh key

    1.设置Git的user name和email:(如果是第一次的话)

    $ git  config  --global  user.name  "lian"// you name

    $ git  config  --global  user.email  "lian@foxmail.com"//you email

    配置完成, 可以查看配置信息

    $ git config --global--list// 查看当前用户(global)配置$ git config --system  --list// 查看系统config$ git config --local  --list// 查看当前仓库配置信息

    2.检查是否存在ssh key

    $cd  ~/.ssh

    看一下有没有id_rsa和id_rsa.pub(或者是id_dsa和id_dsa.pub之类成对的文件),有 .pub 后缀的文件就是公钥,另一个文件则是密钥。

    假如没有这些文件,甚至连 .ssh 目录都没有,可以用 ssh-keygen 来创建。该程序在 Linux/Mac 系统上由 SSH 包提供,而在 Windows 上则包含在 MSysGit 包里。

    3.生成密钥

    $ ssh-keygen  -t   rsa   -C  "lian@foxmail.com"

    直接按Enter就行。然后,会提示你输入密码,如下(建议输一个,安全一点,当然不输也行):

    Entersamepassphraseagain:[Type passphrase again]

    完了之后,大概是这样:

    Your public key has been savedin/home/you/.ssh/id_rsa.pub.The key fingerprintis:# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db lian@foxmail.com

    最后得到了两个文件:id_rsa和id_rsa.pub, 如果不是第一次,就选择overwrite。

    到此为止,你本地的密钥对就生成了

    4.添加公钥到你的远程仓库(github、gitLab等)

    (1) 查看公钥

    $ cat ~/.ssh/id_rsa.pubssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQC0X6L1zLL4VHuvGb8aJH3ippTozmReSUzgntvk434aJ/v7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8vR3c8E7CjZN733f5AL8uEYJA+YZevY5UCvEg+umT7PHghKYaJwaCxV7sjYP7Z6V79OMCEAGDNXC26IBMdMgOluQjp6o6j2KAdtRBdCDS/QIU5THQDxJ9lBXjk1fiq9tITo/aXBvjZeD+gH/Apkh/0GbO8VQLiYYmNfqqAHHeXdltORn8N7C9lOa/UW3KM7QdXo6J0GFlBVQeTE/IGqhMS5PMln3 lian@foxmail.com

    (2)登录你的gitLab账号 

    Settings -> SSH Keys 复制上面公钥内容复制到"key"文本域内, 如果你的公钥复制正确的话, "title"域可以自动生成一个字符串(you email), 当然你可以修改为其他的名字

    5.修改git remote url

    查看当前remote url

    $ git remote  -v  

    origin  https://gitlab-someaccount.net/frontend/someproject.git (fetch)

    origin  https://gitlab-someaccount.net/frontend/someproject.git (push)

    复制ssh链接调整

    git remote set-url origin git@github.com:someaccount/someproject.git

    作者:曜灵SUN

    链接:https://www.jianshu.com/p/d77f05ad14c1

    相关文章

      网友评论

        本文标题:git:ssh与https设置

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