GitHub使用SSH连接以及生成修改添加密钥详细过程

Stella981
• 阅读 1087

目录

  • 1. 先看看本地有没有SSH密钥
  • 2. 生成/修改密钥
  • 3. 把SSH密钥添加到ssh-agent
  • 4. 把SSH密钥添加到GitHub账户里
  • 5. 测试使用ssh地址clone仓库
  • 6. 把远程仓库的URL从HTTPS改成SSH
  • 7. 尝试一下push

GitHub如果使用HTTPS方式连接,要一直输入GitHub的账号密码,很麻烦,如果用SSH方式就不需要了

本文就介绍一下如何配置SSH连接,包括生成添加SSH密钥

以及如果GitHub用的SSH密钥密码忘了,或者想去掉密钥的密码,以及更换密钥的方式

1. 先看看本地有没有SSH密钥

  • 打开git bash,输入:

    ls -al ~/.ssh

如下图,看到了类似 .id_rsa.pub 的字样的文件名,公钥的文件名一般是这个,找到了说明本地有。

GitHub使用SSH连接以及生成修改添加密钥详细过程

2. 生成/修改密钥

  • 生成SSH密钥的指令如下,想要修改也是用这个先生成再覆盖

    ssh-keygen -t rsa -b 4096 -C "yourid@email.com"

把上面的yourid@email.com替换成你的邮箱

结果如下图,这里让你指定存密钥的路径,可以直接敲回车,让它按默认路径就好,默认路径就是后面括号里的。

GitHub使用SSH连接以及生成修改添加密钥详细过程

  • 如果之前在这个默认位置设置过密钥,这里就会问你要不要覆盖之前的密钥,我们的目的正是修改!直接输入y,Yes!

GitHub使用SSH连接以及生成修改添加密钥详细过程

  • 然后让你设置密码,可以不用设,设的话每次都都要输入,很麻烦,不设就直接敲回车跳过。(我这里设了)

GitHub使用SSH连接以及生成修改添加密钥详细过程

  • 看到这个页面就说明成功生成密钥啦!

GitHub使用SSH连接以及生成修改添加密钥详细过程

3. 把SSH密钥添加到ssh-agent

  • 启动一下ssh-agent

    eval $(ssh-agent -s)

结果如下

GitHub使用SSH连接以及生成修改添加密钥详细过程

  • 把SSH私钥添加到ssh-agent

    ssh-add ~/.ssh/id_rsa

有密码的要输一手密码,结果如下就是添加好了

GitHub使用SSH连接以及生成修改添加密钥详细过程

4. 把SSH密钥添加到GitHub账户里

  • 先把密钥复制一下

可以在git bash里用如下命令

clip < ~/.ssh/id_rsa.pub

GitHub使用SSH连接以及生成修改添加密钥详细过程

自己找到文件手工复制也行

  • 打开GitHub,右上角在点自己头像,进入Settings

GitHub使用SSH连接以及生成修改添加密钥详细过程

  • SSH and GPG keys

GitHub使用SSH连接以及生成修改添加密钥详细过程

如果之前有过密钥,要修改是下面这样子

GitHub使用SSH连接以及生成修改添加密钥详细过程

没有就是这个样子

GitHub使用SSH连接以及生成修改添加密钥详细过程

  • 之前的密钥不要的就点Delete给删除。然后新建一个,点 New SSH key
  • Key里把之前复制好的密钥粘贴进去
  • Title随自己心情给自己的密钥起个名字
  • Add SSH key添加

GitHub使用SSH连接以及生成修改添加密钥详细过程

像这样子就好了

GitHub使用SSH连接以及生成修改添加密钥详细过程

  • git bash 里可以测试一下有没有正常工作

    ssh -T git@github.com

像下面这样出现 Hi! +用户名就是正常了

GitHub使用SSH连接以及生成修改添加密钥详细过程

如果是第一次添加SSH,还应该会问你

Are you sure you want to continue connecting? 选择yes就行了

5. 测试使用ssh地址clone仓库

  • 随便找个仓库选ssh地址复制

GitHub使用SSH连接以及生成修改添加密钥详细过程

  • git bash 中用git的地址clone

    git clone git@github.com:Zolich666/Information-Integration.git

  • 如果密钥设置了密码,clone还得输密码

GitHub使用SSH连接以及生成修改添加密钥详细过程

  • OK!成功,之后的push操作就可以用SSH协议的方式了!

GitHub使用SSH连接以及生成修改添加密钥详细过程

6. 把远程仓库的URL从HTTPS改成SSH

那么如果是之前用HTTPS方式clone下来的仓库想改成使用SSH的方式怎么办呢?

  • 将路径改为某个之前clone的仓库下

GitHub使用SSH连接以及生成修改添加密钥详细过程

  • 获取一下要更改的仓库名称,看看是不是HTTPS方式

    git remote -v

我这样https://打头的就说明这个仓库是HTTPS方式的

GitHub使用SSH连接以及生成修改添加密钥详细过程

  • 用 set-url修改URL为SSH的形式

    git remote set-url origin git@github.com:Zolich666/Notes-of-Learning.git

两种方式URL的区别如下

HTTPS方式

https://github.com/USERNAME/REPONAME.git

SSH方式

git@github.com:USERNAME/REPONAME.git

GitHub使用SSH连接以及生成修改添加密钥详细过程

  • OK,完了再用git remote -v检查一下有没有修改成功

GitHub使用SSH连接以及生成修改添加密钥详细过程

这样就改好了

7. 尝试一下push

  • 随便修改一下仓库的内容,push一下看看情况

GitHub使用SSH连接以及生成修改添加密钥详细过程

成功!这次没让我输入GitHub账号密码了

但是,如果密钥设置了密码,这里还是会让你输入密码。。。


还想BB几句

感谢你看到这里!我是在努力code,刚尝试写博的小白zolich。我喜欢看简单细致的教程学习,我也想把自己的学习心得写成这种形式,帮助自己记忆,也希望帮到像我一样在努力学习的人。

如果这篇文章对你有一点点帮助的话,顺手推荐or收藏or分享下吧~拜托啦,这对我真的很重要!还想看这种类型的文章的话加个关注吧!你的支持是对我最大的鼓励!

水平所限,如有疏漏,欢迎指正~

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
前端尾随者 前端尾随者
2年前
sourceTree 添加 ssh key 方法
1.使用git客户的生成公私钥:id\rsa、id\rsa.pub1.1设置Git的username和email:$gitconfigglobaluser.name"xxx"$gitconfig\globaluser.email"xxx.mail@xxx.com"1.2.生成SSH密钥过程:1.2.1.检查是不是已经存在密钥(
Wesley13 Wesley13
2年前
SSH公钥无密码认证
1)在master主机上生成密码对sshkeygen–trsa–P''确认一路回车,命令默认会在用户主目录下生成.ssh目录,你们有两密钥对文件:id\_rsa和id\_rsa.pubmaster@hadoop~$ll.ssh/rw.1mastermaster1675Jun
Easter79 Easter79
2年前
ssh
sshkeygen生成gitssh密钥SSH是建立在应用层和传输层基础上的安全协议,其目的是专为远程登录会话和其他网络服务提供安全性的保障,用过SSH远程登录的人都比较熟悉,可以认为SSH是一种安全的Shell。SSH登录是需要用户名和密码的,要实现无密码登录,就需要创建SSH密钥(sshkey),SSH密钥可以认为是和另一台电脑通信时
Easter79 Easter79
2年前
ssh连接服务器
1.概述ssh是一种网络通信协议,用于计算机之间的加密登录.一般用ssh连接服务器有两种方式:密码认证与密钥认证.密码认证就是通过传统的输入密码的方式登录,密钥认证就是把产生的公钥注册到服务器后,用私钥登录,这样就可以不用每次登录输入密码.特别适合作者这种脑残记不住密码的懒人.2.密码认证密码认证登录直接在终端使用ssh
Stella981 Stella981
2年前
Git配置SSH Key的时候提示密钥无效
错误提示:Keyisinvalid.YoumustsupplyakeyinOpenSSHpublickeyformat翻译:密钥无效。必须提供OpenSSH公钥格式的密钥操作步骤1.生成公钥sshkeygentrsaC"GitHub账号的注册邮箱"2.进入路径vim~/.ssh/i
Stella981 Stella981
2年前
Git使用总结
生成密钥1.打开GitBash,运行  \_sshkeygen  \_2.密钥生成空间\_~/.ssh/id\_rsa  \_(C:/User/.ssh)3.输入密码(不输入增直接回车跳过)4._~/.ssh/id\_rsa.pub_ (公钥), _id\_rsa_ (私钥)下载代码到本地
Stella981 Stella981
2年前
Linux 登陆用户时启动 ssh
文/Fenying使用Git/SSH/SCP之类操作的时候,一般都是用ssh密钥的,但是每次都要先启动sshagent才能注册密钥,挺烦的,于是尝试了一下,能不能在登陆终端的时候自动启动sshagent,然后关闭的时候自动kill掉sshagent。自动启动的原理很简单,就是在~/.bashrc里面加入eva
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
小万哥 小万哥
1个月前
Git 安全远程访问:SSH 密钥对生成、添加和连接步骤解析
使用SSH密钥对的Git安全远程访问:生成、添加和连接SSH(SecureShell)是一种用于安全远程访问的协议,它提供了加密通信和身份验证机制。在使用SSH连接到远程Git存储库时,您可以使用SSH密钥对来确保安全性。以下是关于如何生成和使用SSH密钥