什么是SSH
SSH是一种加密协议,全称为Secure Shell,用于安全地远程登录到服务器或其他远程设备上执行命令或传输文件。它提供了一种安全的加密通信机制,使得远程登录和文件传输等操作不会被恶意攻击者窃取或篡改,确保了数据的保密性和完整性。SSH采用公钥密码学技术,能够有效地防止被中间人攻击或网络窃听。
举例来说,如果我们要使用 Github 这种 git 代码托管平台的话,首先本地要生成一个 SSH 私钥(如id_rsa)
和 公钥(如id_rsa.pub)
,然后将 公钥
填写到 Github 的 SSH Key 管理面板中。当我们向 Github 推送代码的时候会首先发起身份校验。此时,本地会将用户信息通过 SSH 私钥
执行『签名』操作。当签名信息发送到 Github 的时候,Github 就会使用用户保存在平台上的 公钥
来校验签名信息,使用 私钥
签名信息只能由对应的 公钥
进行校验,因此如果 Github 对签名校验通过,就可以认证当前的用户对代码仓库拥有响应的操作权限,之后就可以让用户提交的代码入库了,整体流程如下图:
关于公钥和私钥,是『非对称加密』相关的内容,公钥通常用于 内容加密 或 认证签名,是可以在服务器与客户端之间进行传播的;而私钥是用来 解密公钥加密的内容 或 对内容进行签名 用的
综上,SSH 采用非对称加密的方式来完成客户端与服务器端的认证并建立通信连接,因此可以被用于客户端与 git 平台之间的认证,以及远程服务器之间的免密认证。
vscode远程免密ssh
每次用vscode打开文件夹都要输入密码,让人有点心烦,小编利用 51假期研究了一会,终于找到了vscode远程免密ssh连接Linux的方法。本文非常合适有多个git账户的读者。
尝试使用终端工具SSH远程连接Linux
例如Git Bash,Cmder,MobaXterm。<