网页链接成整体通过网站,网站内容建设 内容审核流程,网站制作视频教学,深圳公司网站备案需要什么资料左手编程#xff0c;右手年华。大家好#xff0c;我是一点#xff0c;关注我#xff0c;带你走入编程的世界。 公众号#xff1a;一点sir#xff0c;关注领取python编程资料 很多人在使用github的时候#xff0c;如果还是使用https的方式推送代码的话#xff0c;可能会… 左手编程右手年华。大家好我是一点关注我带你走入编程的世界。 公众号一点sir关注领取python编程资料 很多人在使用github的时候如果还是使用https的方式推送代码的话可能会发现推送不上去官方会建议你使用ssh的方式进行代码推送。通过ssh方式推送代码速度更快更高效而且还不用每次输密码缺点就是要在你自己的本机以及github上面做一些配置。这些配置并不难很简单前期花一点点时间可以避免很多繁琐的事情。
本机生成密钥
如果你的计算机上还没有 SSH 密钥你需要生成一对新的 SSH 密钥。
如果你是在linux机器上直接执行以下命令要是window机器的话打开cmd或者powershell窗口执行以下命令
ssh-keygen -t rsa -b 4096 -C xxx其中字符xxx你可以任意的填写很多人说是填写你gihtub上面的邮箱或者账号实际不用可以任意填写这个就相当于注释不用纠结这个。
ssh-keygen -t rsa -b 4096 -C xxx -f id_rsa_alittlesir运行 ssh-keygen 时系统会询问你是否要更改密钥的位置。默认位置通常是好的。系统还会询问你是否要输入密码短语来保护你的私钥。输入输入密码短语是可以增加安全性但在每次使用 SSH 密钥时都需要输入密码可能就变得不方便了。
如果你想在一台机器上生成多个id_ras公玥的话或者机器是你和别人共用的话也就是说你想在一台机器上ssh到多个自己的账号那么可以通过-f命令重命名一下生成的id_rsa文件名记住这种方式生成的id_rsa文件是在当前目录下。比如我上面就在当前目录下生成了两个文件
id_rsa_alittlesir
id_rsa_alittlesir.pub当然你可以加上路径指定生成的目录下记得路径要加上引号。
ssh-keygen -t rsa -b 4096 -C xxx -f C:\Users\alittlesir\.ssh\id_rsa_alittlesirid_rsa_alittlesir是私玥id_rsa_alittlesir.pub是公钥公玥上的内容是填写在服务器上的如果是提交到gitee或者github上面的话就需要就那上面去配置公玥记住这里的意思是把公玥上的内容复制到github上至于复制的地方下面会说。而私玥是自己本地使用不用动。
Github配置
本机上生成了密钥后现在就需要到github上面去配置填写下你生成的公玥内容以下就是详细的步骤。
1、打开github点击setting按钮进入设置界面。
2、找到左侧栏的SSH keys and GPG keys进入SSH的界面填写公玥相关信息。
3、点击New SSH keys添加SSH key的公玥
4、其中Title随便填写Key type保持不变Key的内容就是填写你生成的公玥内容也就是id_rsa_tianya85.pub的内容直接复制就好。
这样你就在你的github账号上生成了一个ssh key那么你在客户端进行推送的时候就不需要密码了。
检查配置
添加完公玥之后你也可以检查一下配置是否成功了很简单直接通过以下命令即可。
ssh -T gitgithub.com如果输出以下内容那么配置就是可以的。
$ ssh -T gitgithub.com
Hi alittlesir! Youve successfully authenticated, but GitHub does not provide shell access.
最后要记得通过ssh方式clone代码的时候HTTPS的URL你需要更改它为SSH的URL这个在github上面是有这个的。
git clone gitgithub.com:username/repo.git如果你的仓库当前使用的是 HTTPS URL你需要更改它为 SSH URL。
git remote set-url origin gitgithub.com:username/repo.git原理解释
当配置了 SSH 密钥对之后就不需要在每次通过 SSH 连接到远程服务器时输入密码这是因为 SSH 提供了一种基于公钥的身份验证机制。
1、密钥对生成 当在本地计算机上运行 ssh-keygen 命令时会生成一对密钥一个私钥例如 id_rsa和一个公钥例如 id_rsa.pub。私钥存储在我们的本地计算机上而公钥则被添加到要访问的远程服务器如 GitHub。
2、公钥分发 将公钥上传到 GitHub 的账户设置中告诉 GitHub 你的公钥对应于你的私钥这是一一对应关系的。
3、认证过程 当我们试图通过SSH连接到 GitHub 时GitHub 会发送一个只有持有相应私钥的人才能解密的信息给你的客户端。你的客户端使用你的私钥解密该信息并将其发送回 GitHub。GitHub 验证解密后的信息与原始信息匹配并确认它是由你的私钥解密的。如果验证成功GitHub 就会允许你进行通信。
因为 SSH 密钥对是成对出现的公钥和私钥之间有数学上的关联这意味着
只有私钥持有者能够解密由公钥加密的信息。公钥可以自由分发因为它不能用于解密由自己加密的信息。
因此一旦你的 SSH 公钥已经添加到了 GitHub并且你的私钥安全地存储在你的计算机上你就可以通过 SSH 连接到 GitHub 而无需输入密码。
需要注意的是如果我们在生成密钥时设置了密码短语passphrase那么在每次使用私钥之前你需要输入这个密码短语来解锁私钥。为了方便起见你可以使用 SSH 代理如 ssh-agent 或 Pageant来管理私钥这样在你的一次会话中只需要输入一次密码短语即可。