一、前言
之前一直在使用https来push仓库,缺点是每次都需要输入账号和密码。使用ssh的话,可以不输入密码。
二、使用
-
单个ssh
仅仅使用github作为远程仓库服务器,那么只需要一个ssh即可。
生成ssh:ssh-keygen -t rsa -C "xxxxx@xxxxx.com" -f ~/.ssh/github_id_rsa
使用上述命令,会在目录
~/.ssh(windows在C:/Users/admininstrator/.ssh/)
中生成两个文件:github_id_rsa和github_id_rsa.pub,分别保存私钥和公钥。查看公钥:
cat ~/.ssh/github_id_rsa.pub
上面命令查看github_id_rsa.pub文件的内容,输出公钥,
复制该公钥
打开github添加ssh公钥:
在key中粘贴刚才复制的公钥,title随意填写。查看链接是否成功:
ssh -T git@github.com
返回含successfully单词的语句,表示链接成功。
使用ssh push/pull仓库:
进入一个仓库,克隆仓库ssh
然后,在添加远程仓库时,使用这个ssh
git remote add github '刚刚复制的ssh'
这样,就可以使用ssh进行push/pull了。
-
多个ssh
当既使用多个git的远程服务器时,比如码云、github。这时,需要管理多个ssh。
生成公钥ssh-keygen -t rsa -C "xxxxx@xxxxx.com" -f ~/.ssh/gitee_id_rsa ssh-keygen -t rsa -C "xxxxx@xxxxx.com" -f ~/.ssh/github_id_rsa
这里的重点在于,将公钥保存在不同的文件中,即区分二者。
查看公钥cat ~/.ssh/github_id_rsa.pub cat ~/.ssh/gitee_id_rsa.pub
在远程服务器(码云、github)中添加公钥(略)
配置config
在~/.ssh(windows在C:/Users/admininstrator/.ssh/)目录下新建一个config文件(不含扩展名)
。在文件中,添加下面内容:# gitee Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitee_id_rsa # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_id_rsa
检查连接是否成功
$ ssh -T git@gitee.com $ ssh -T git@github.com
同时,在.ssh目录下回生成know_hosts文件来区分不同的ssh
使用ssh来push和pull(略)
提示:单个ssh和多个ssh的配置步骤并没有太大区别,不同是多个ssh时,需要添加一个config文件来区分ssh。