git通过ssh进行链接

我们通过传统的http/https链接从仓库中拉取推送个人代码时需要输入账号密码验证后才能进行操作。当然git仓库也提供了一种免密操作的方式,就是通过ssh来进行验证。

以下我是基于windows电脑进行的ssh配置。

生成ssh密钥

首先我们需要在电脑上打开一个控制台,输入以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

根据引导创建密钥,我们可以在用户目录的.ssh文件下中找到创建的公钥和私钥。

一般用户名目录结构(C:\Users\<你的用户名>\.ssh):

image-20220522233416722

上图中的id_rsa是私钥,id_rsa.pub是公钥。

添加公钥

然后我们需要将公钥添加到你的git仓库中,这里我以github为例:

打开github,进入设置,点击如图箭头位置:

image-20220522233944258

添加之前生成的公钥,title可以随便输:

image-20220522234047064

之后就可以通过ssh链接接直接拉取代码了:

image-20220522234146513

设置ssh-agent

如果你生成密钥的时候设置了密码,那你通过ssh方式拉取代码仍然需要输入密码,这不就回到以前的方式了吗。当然你生成密钥的时候没有设置密码接下来的内容就不用看了。

为了解决每次通过ssh都要输入密码的问题,我们就可以设置ssh-agent代理。我们只需要第一次输入密码后,后续的操作就不用再输入密码了。

首先需要确保的你的ssh-agent服务已经启动,这个服务可以手动的方式去启动具体操作步骤如下:

1.找到计算机管理

image-20220522234556633

2.点击服务和应用程序

image-20220522234627333

点击去之后再点击服务,进入到服务列表,然后自行找到ssh-agent服务,如下图:

image-20220522234746250

设置为开机自启,并启动。

3.重新打开控制台

添加自己的密钥

我们打开服务后就可以使用ssh-add来添加自己的密钥,命令如下:

# 路径记得改成自己的私钥位置
ssh-add ~/.ssh/id_ed25519

修改git配置

git config --global core.sshCommand C:/Windows/System32/OpenSSH/ssh.exe

之后就可以愉快的进行git操作了。

注意:

  • 不同的终端可能有些命令不能使用,这个需要自行查阅解决。
  • 关机后再开机原则上我们是需要重复ssh-agent的操作才能实现一次登录后续免密的效果,因为对ssh-agent研究不是很透彻,可能也不需要这个重复操作。
  • ssh-agent更多是适用于服务器,毕竟服务器不经常开关机,所以你嫌麻烦可以在创建ssh的时候不设置密码。
  • 如果你配置好后打开终端后还是提示需要输入密码可以输入命令start-ssh-agent,来验证你的配置是否有效。还可以通过命令ssh-add -l来查看你添加的密钥。

参考文献

Last modification:June 5, 2022
如果觉得我的文章对你有用,请随意赞赏