在github上添加一个ssh key

今天学习了在给i他hub上添加ssh key

具体步骤以及含义:

1、首先,安装git。(已安装则忽略)

$ sudo apt install git

2、检查您的用户目录下的.ssh文件夹中是否已有SSH密钥

$ ls -al ~/.ssh

ls: 无法访问 '/home/seven/.ssh': 没有那个文件或目录  #代表没有相关密钥

有的话则返回类似以下的信息:

3、如果不存在,请用以下命令生成新的SSH密钥

& ssh-keygen -t rsa -b 4096 -C "双引号内填写你的GitHub注册电子邮件地址"

指令含义解释:

ssh-keygen:

SSH提供两种级别的安全验证:

 第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。

第二种级别(基于密匙的安全验证)ssh-keygen:需要依靠密匙,你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。

-t rsa:

-t即指定密钥的类型,密钥的类型有两种,一种是RSA,一种是DSA;

RSA:RSA加密算法是一种非对称加密算法,是由三个麻省理工的牛人弄出来的,RSA是他们三个人姓的开头首字母组合。

DSA:Digital Signature Algorithm (DSA)是Schnorr和ElGamal签名算法的变种。

为了让两个linux机器之间使用ssh不需要用户名和密码。所以采用了数字签名RSA或者DSA来完成这个操作。ssh-keygen默认使用rsa密钥,所以不加-t rsa也行,如果你想生成dsa密钥,就需要加参数-t dsa。

-b 4096:

b是bit的缩写

-b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。命令中的4096指的是RSA密钥长度为4096位。

DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。

-c 

邮箱,c 是 comment的缩写

-c 表示要提供一个新注释,用于识别这个密钥,所以 "GitHub注册电子邮件地址" 里面不一定非要填邮箱,可以是任何内容,邮箱仅仅是识别用的key。

获取到的输出结果如下:

Generating public/private rsa key pair.Enter file in which to save the key (home/用户名/.ssh/id rsa):
这是在生成SSH密钥时出现的提示。在这里,系统询问您要将新生成的SSH密钥存储在哪个文件中。默认情况下,它会将密钥存储在 /home/xy8v/.sh/id_rsa文件中,其中“用户名”是当前登录用户的用户名。如果您想将密钥存储在不同的位置,请在提示中输入新的文件路径和名称。
如果您希望使用默认的密钥存储位置,则只需按Enter键即可。这将在默认位置创建一个新的SSH密钥文件并为其生成公共和私有密钥对。相应的公钥将存储在与私钥相同的目录中,并在文件名后面带有扩展名 pub 。通常,您无需更改默认设置,因此只需按Enter键即可完成生成SSH密钥的过程。
 
Enter passphrase (empty for no passphrase):
这是在生成SSH密钥时出现的另一个提示。这个提示会询问您是否想要为您的私钥设置一个密码 (又称为“passphrase”) 。如果您希望为私钥设置一个密码以增加安全性,可以在此处输入密码并再次确认密码。如果您不想设置密码 (不推荐),则只需按Enter键即可留空并继续下一步操作。
请注意,如果您设置了密码,则在每次使用私钥时都需要输入该密码才能解锁私钥,这可能会稍微麻烦。但是,它确实可以保护您的私钥免受未经授权访问和使用。
如果您决定设置密码但忘记了它,那么您将无法使用该私钥进行身份验证,也无法恢复密码。此外,如果您丢失了私钥文件或私钥文件被盗,您的私人信息可能面临泄露风险。因此,请妥善保管您的SSH私钥,并谨值对待密码的选择。
 
Enter same passphrase again:
这是在生成SSH密钥时出现的另一个提示,用于确认您所设置的私钥密码。如果您已经在上一步设置了密码,系统将要求您再次输入该密码以确保您没有输错。请再次输入相同的密码以完成设置。如果您在上一步留空并未设置密码则此提示也会留空并直接让您按Enter键继续操作。
请注意,输入密码时,为了安全起见系统可能不会显示任何输入字符,因此您需要谨慎输入。完成此步骤后,系统将生成一个新的SSH密钥,并使用该密码对其进行加密保护,以增加隐私和安全性。

4、复制SSH公钥。输入指令后,复制输出内容

$ cat ~/.ssh/id_rsa.pub

5、将SSH公钥其添加到GitHub账户中

登录GitHub转到"Setting"--->"SSH and GPG keys",单击"New SSH key",并粘贴公钥

6、配置您的Git全局用户名和电子邮件地址

使用以下命令输入您的信息,将“Your Name”和“your email@example.com"替换为您自己的信息

$ git config --global user.name "Your Name" 
$ git config --global user.email "your_email@example.com"

# Your Name 是你提交代码的名字,随便起
# your_email@example.com 是你的注册邮箱

配置好的信息,用以下指令查看。会输出以上配置的内容。

$ git config --global --list

7、验证链接

$ ssh -T git@github.com

ssh:

Secure Shell(SSH)的客户端,用于通过网络进行安全连接和执行命令。


-T:

这个选项告诉 ssh 不要分配一个伺服端(Pseudo-Terminal)。对于测试连接这种需要仅验证连接是否成功的情况,通常使用这个选项。


git@github.com:

这是连接到 GitHub 的 SSH URL。git 是 GitHub 提供的用户账号,用于处理所有的 Git 操作(如克隆、推送、拉取)。


github.com 是 GitHub 的域名。

输出为:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

这条信息表明你已经成功通过 SSH 密钥验证,并且 GitHub 识别了你的账户,但你不能通过 SSH 获取 shell 访问。

Permission denied (publickey).

这表明 SSH 密钥验证失败,可能是因为没有配置 SSH 密钥,或者 GitHub 账户上没有相应的公钥。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值