1、SSH工作原理
从ssh的加密方式说开去,看下文👇
1.1、对称加密
客户端和服务端采用相同的密钥进行数据的加解密,很难保证密钥不丢失,或者被截获。隐藏着中间人攻击的风险
如果攻击者插在用户与远程主机之间(比如在公共的wifi区域),用伪造的公钥,获取用户的登录密码。再用这个密码登录远程主机,那么SSH的安全机制就不存在了。这种风险就是著名的"中间人攻击"(
Man-in-the-middle attack)
为了解决对称加密的漏洞,就出现了非对称加密。非对称加密有两个密钥:“公钥”和“私钥”。公钥加密后的密文,只能通过对应的私钥进行解密。想从公钥推理出私钥几乎不可能,所以非对称加密的安全性比较高。
1.2、非对称加密
ssh连接远程git仓库时的登录验证原理:本地主机向远程主机发送登录请求,远程主机收到请求后,返回给本地主机一个随机字符串A,本地主机用私钥加密字符串A得到密文B,并把密文B发送给远程主机,远程主机用公钥解密密文A得到字符串B,并判断A是否等于B,如果相等,则认证成功,反之,则反之。
不在要求使用密码登录,以公私钥的方式实现免密登录

1.3、基于口令和公钥认证
只有在第一次连接的时候需要,通信双方验证身份之后就可以通过在客户端的私钥和你存放在服务器的公钥进行认证。(通过服务器上的公钥加密,客户端的私钥解密来验证)
第一次登录:
如果不是第一次登录,想看一下效果的话,可以修改一下本地的
~/.ssh/known_hosts文件名(~/.ssh/known_hosts文件中保存的是已经认证过的公钥信息),重命名该文件之后,相当于清空了认证过的公钥信息,再次连接的时候就会重新认证😁😁
- ssh连接远程主机
$ git clone git@gitcode.net:xxx.git
Cloning into 'xxx'...
The authenticity of host 'gitcode.net (119.3.229.170)' can't be established.
RSA key fingerprint is SHA256:pyrMa3p0o90Qsuz2+kMX3CIBl+S1cZsdRlCoaosSg00Qs.
Are you sure you want to continue connecting (yes/no/[fingerprint])?yes
Warning: Permanently added 'gitcode.net,119.3.229.170' (RSA) to the list of known hosts.
- 查看 known_hosts 文件
# 查看known_hosts文件
$ cat known_hosts
gitcode.net,119.3.229.170 ssh-rsa AAAAB3NzaC1yc2EAAAL....

本文详细介绍了SSH的工作原理,包括对称加密与非对称加密的区别,以及如何通过公钥认证实现免密登录。接着,针对多主机配置问题,阐述了ssh_config文件的使用,展示了如何通过配置Host别名简化SSH连接,并提供了实际的配置示例。此外,还分享了在Windows系统下设置多个代码仓库SSH连接的步骤,包括生成公私钥对、配置远程主机SSH及解决连接问题。最后,强调了SSH连接相较于HTTPS的优缺点,鼓励读者尝试使用SSH优化远程仓库的连接方式。


被折叠的 条评论
为什么被折叠?



