SSH key使用总结

https和SSH区别

  • 前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。
  • https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

关于SSH

使用SSH协议,我们可以连接并验证远程服务器和服务。使用SSH密钥,我们可以连接到GitHub,而无需在每次访问时提供用户名或密码。

检查是否已有SSH key

在生成SSH密钥前,应先检查是否已存在SSH key

  • 1、打开Git Bash
  • 2、输入ls -al ~/.ssh以查看是否存在现有密钥
  • 3、检查目录列表是否已有类似id_rsaid_rsa.pub的两个文件,前者是密钥文件,后者是公钥文件

默认情况下,公钥的文件名是以下之一:

id_dsa.pub

id_ecdsa.pub

id_ed25519.pub

id_rsa.pub

如果未发现有类似的公钥和私钥对,则可以按照如下方法生成一个SSH key:

  • 1、打开Git Bash
  • 2、输入下面的命令,将邮箱地址替换你的GitHub邮箱地址
$ ssh-keygen -t rsa -b 4096 -C " your_email@example.com"
复制代码

各参数含义:

-t:密钥类型,一般为dsa,ecdsa,ed25519和rsa这几种,默认为rsa,可省略;

-b:密钥的位数;

-C:注释文字,比如邮箱。

  • 3、当出现以下提示指定保存位置时可选择直接Enter回车,即选择默认保存位置
Enter a file in which to save the key (/c/Users/you/.ssh/id_rsa):[Press enter]
复制代码
  • 4、接着会提醒设置密码,可以直接回车回车,当然也可以选择设置密码
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
复制代码

到这里就生成了一个新的SSH key,可以使用ls命令查看生成后的文件目录:

  • id_rsa和id_rsa.pub分别为私钥和公钥

新建一个config文件

$ touch ~/.ssh/config
复制代码

然后在config文件中添加以下内容:

Host *.github.com
    IdentityFile ~/.ssh/id_rsa
    User '你的用户名'
复制代码

接着将id_rsa.pub内的内容复制并添加到你的GitHub账户中(Settings->SSH and GPG keys->New SSH key)

OK,进行一下链接测试

$ ssh -T git@github.com
复制代码

回车后出现(如果设置了密码,则需输入密码):

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

就表示设置成功了,Bingo!

修改remote url

在你的项目目录下先使用git remote -v查看远程地址

$ git remote -v
origin https://github.com/someaccount/someproject.git (fetch)
origin https://github.com/someaccount/someproject.git (push)
复制代码

可以看出当前项目是使用https协议进行访问的,然后我们可以使用命令改成SSH协议进行访问:

$ git remote set-url origin git@github.com:AccountName/Project-name.git
复制代码

之后再查看远程地址:

$ git remote -v
origin git@github.com:AccountName/Project-name.git (fetch)
origin git@github.com:AccountName/Project-name.git (push)
复制代码

发现remote url已经变了。

然后你就可以愉快的使用git fetch, git pull , git push,再也不用输入烦人的密码了(如果设置了密钥密码passphrase,则会需要输入该密码)

tips:

如果有时候发现push不成功,提示the project you were looking for could not be found 那么就有可能是远程仓库地址换了

  • 删除 git remote rm origin
  • 添加 git remote add origin git@github.com

如果想修改SSH key密码,如下操作:

$ cd ~/.ssh/ 
复制代码

这里修改rsa类型密钥的密码:

$ ssh-keygen -f id_rsa -p  
复制代码
  • -f {keyfile};
  • -p 表示请求修改私钥的密码,而不是创建一个新的私钥.

然后按照提示输入你的old passphrasenew passphrase就OK了。

也可以通过GitHub Help了解更多

GitHub: ScoutYin

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值