git bash使用ssh秘钥

    在使用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代码时,不会再出现输入账号密码了。奇怪的是,可能是因为第一步设置了密码,导致我现在每次提交代码,都需要输入一次密码(账号倒是不用输入了)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容