使用 https 和 SSH 克隆项目的区别
-
前者可以随意克隆github上的项目 , 而不管是谁的;后者则只有项目的拥有者或管理员在成功添加 SSH-key 后才可以克隆
-
https-url 在push的时候需要验证用户名和密码 , 而 SSH 在push的时候不需要输入用户名 , 如果配置 SSH-key 的时候设置了密码 , 则需要输入密码 , 否则不需要输入密码
检查当前电脑是否已有 SSH-key
- 运行 Git Bash , 执行命令 , 如果显示如下则不需要创建 SSH-key
创建 SSH-key 的方法
-
Git Bash 执行命令
ssh-keygen -t rsa -C "[email protected]"
-
代码参数含义
- -t 指定密钥类型( 可以省略 , 默认rsa )
- -C 设置注释文字( 比如邮箱 )
- -f 指定密钥存储文件名
-
由于以上代码省略了 -f 参数 , 因此 , 运行上面那条命令后会提示输入一个文件名 , 用于保存刚才生成的 SSH-key 代码 , 推荐不输入文件名直接回车使用默认文件名 , 就会生成 id_rsa 和 id_rsa.pub 两个秘钥文件
-
接着又会提示输入两次密码(该密码是push代码的时候需要输入的密码 , 而不是github管理者的密码),也可以不输入密码 , 直接按回车 , 那么push的时候就不需要输入密码
添加 SSH-key 到 github的方法
-
拷贝 id_rsa.pub 文件的内容 , 将其添加到github账号的settings里的SSH key中
-
注意拷贝的 SSH key 代码的前后不要留有空格或回车
-
可以不输入Title , 默认Title会使用邮箱号
测试 SSH key 是否配置成功
-
Git Bash 中执行如下命令
ssh -T [email protected]
-
输入 yes 并回车
-
如果之前设置了SSH密码则输入密码并回车
-
显示成功信息
2020.03.09 记录BUG
Connection reset by 192.30.255.112 port 22 fatal: Could not read from remote repository
-
解决方式
- 检查github是否可以ping通 && github网页是否可以正常打开
- 如果不行则重新配置hosts文件中的IP映射,以省去DNS解析加快国外网站访问速度
- 重新配置本机和github的SSH KEY
- 检查克隆到本地的存储库的git config中的username和email是否和github中的相同
- 本地存储库执行命令
git remote set-url origin [email protected]:YourgithubName/YourRepositoryName.git
- 检查github是否可以ping通 && github网页是否可以正常打开
2020.03.12 记录BUG
- 今天告别了windows,正式开始使用linux
git添加公钥后报错sign_and_send_pubkey: signing failed: agent refused operation
- 执行如下命令即可
eval "$(ssh-agent -s)"
ssh-add
linux-deepin配置hosts和ssh又来了一遍如下~
github.global.ssl.fastly.net
github.com
修改hosts
刷新DNS缓存 sudo /etc/init.d/networking restart
测试ping通
---------------------------
sudo rm -rf ~/.ssh
ssh-keygen -C "your email"
cat id_rsa.pub
---------------------------
添加sshkey 至github
本地测试sshkey ssh -T [email protected]
---------------------------
我感觉还是https的方式好用啊!