美文网首页
git bash使用ssh秘钥

git bash使用ssh秘钥

作者: misaka去年夏天 | 来源:发表于2017-05-21 23:01 被阅读0次

        在使用git bash命令行的时候,每次push代码到远端的时候,总会需要输入账号和密码。这是因为clone项目到本地的时候,使用的是https的方式提交和验证账号。如果使用ssh秘钥,则可以不用输入账号和密码。

    1、生成密钥对

        首先看看系统中是否存在ssh秘钥:

    # cd ~/.ssh

    # ls -a

        关键是看有没有用 something 和 something.pub 来命名的一对文件,这个 something 通常就是 id_dsa 或 id_rsa。有 .pub后缀的文件就是公钥,另一个文件则是密钥。假如没有这些文件,或者干脆连 .ssh 目录都没有,可以用 ssh-keygen 来创建。

    # ssh-keygen -t rsa -C "your_email@youremail.com"

        会提示保存秘钥的文件,直接回车即可

    Enter file in which to save the key (/home/you/.ssh/id_rsa):

        然后,会提示输入密码。输入的密码和你github的密码无关,随便输入,也可以不输入。

    # Enter passphrase (empty for no passphrase): 

    # Enter same passphrase again:

        秘钥生成完成

    2、把公钥添加到GitHub

    登录到github.com,进入个人设置,选择SSH and GPG keys。把第一步生成的公钥id_rsa.pub里的内容,复制到输入框里,保存即可。

    # ssh -T git@github.com                  #测试秘钥是否可用

    验证第一步输入的密码......

    Hi xxx! You've successfully authenticated, but GitHub does not # provide shell access.

    3、修改不使用https,转而使用ssh

    # cd到某个git分支目录下

    # git remote -v

    origin https://github.com/someaccount/someproject.git (fetch)

    origin https://github.com/someaccount/someproject.git (push)

        登录到GitHub, 找个这个项目的ssh对应的.git的URL,复制之

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

        完成之后,使用git remote -v命令,可以看到已经修改为git@github.com:someaccount/someproject.git

            OK,此时再次push代码时,不会再出现输入账号密码了。奇怪的是,可能是因为第一步设置了密码,导致我现在每次提交代码,都需要输入一次密码(账号倒是不用输入了)。

    相关文章

      网友评论

          本文标题:git bash使用ssh秘钥

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