什么是SSH?它是如何工作的?
点击此处订阅我的电子报:
什么是SSH?
启动 SSH 会话。
SSH加密技术。
SSH 如何与这些类型的加密一起工作?
点击此处订阅我的电子报:
点击此处订阅我的电子报:
我每周都会在以下平台分享我的最佳发现:
- AWS
- JavaScript
- 网络爬虫
- 独立黑客
什么是SSH?
SSH(安全外壳协议)允许用户远程访问服务器。它使用加密技术确保所有与服务器之间的通信都以加密方式进行。
它提供了一种验证远程用户身份、将输入从客户端传输到主机以及将信息中继回客户端的方法。
Linux 和 macOS 用户可以直接使用终端通过 SSH 连接到远程服务器。Windows 用户则需要使用像PuTTY这样的工具。
您可以像在远程计算机上实际操作一样使用 shell 命令。
启动 SSH 会话。
SSH 命令由三部分组成;
ssh {user}@{host}
- SSH告诉系统你想打开一个加密连接。
- 用户是指您要访问的帐户(例如,root === admin)。
- 主机是您要访问的计算机(IP 地址或域名)。
输入这些信息后,系统会要求您输入密码,虽然屏幕上不会显示任何内容,但您的密码正在被发送出去。
SSH加密技术。
- 对称加密
- 非对称加密
- 哈希
对称加密
这种加密方式(我讨厌打这个词)使用一个密钥,用于加密和解密消息的两端。
通常称为共享密钥加密或共享秘密加密。
通常只有一个密钥,但也可以使用密钥对,其中一个密钥可以计算出另一个密钥。
客户端和服务器都通过约定的方法(密钥交换算法)获取密钥,并且该密钥永远不会向任何第三方显示。
服务器和客户端之间共享的信息可能会被另一台机器拦截,但它无法计算密钥交换算法。
有很多种密码可以用来生成密钥,但在进行安全传输之前,会根据两台机器的偏好顺序选择其中一种。
非对称加密
这里我们使用两个不同的密钥进行加密和解密。
- 公钥
- 私钥
- 公钥-私钥对
这就像一种单向关系。公钥是公开的,但你无法根据公钥推导出私钥。两者之间的关系很复杂。
这种单向关系意味着公钥既不能解密自己的消息,也不能解密私钥发送的任何内容。
它不用于加密整个会话,而只在密钥交换算法期间使用。
在建立安全连接之前,两台机器会创建临时的公钥和私钥,并共享它们以创建一个共享的密钥。
一旦建立了安全的对称通信,服务器就会使用客户端的公钥向客户端发出质询并发送公钥以进行身份验证。
如果客户端能够解密消息,则说明它拥有私钥。然后就可以建立SSH会话了。
哈希
单向通信,其内容永远无法解密。哈希算法为传输通信中的每个字符生成一个固定长度的唯一值。
这使得逆向工程几乎不可能实现(直到量子计算出现为止 ;) )。
从输入生成哈希值很容易,因此如果客户端有正确的输入,他们可以将其与哈希值进行比较,并确认他们有正确的输入。
SSH 使用哈希值来验证消息的有效性。
HMAC(基于哈希的消息认证码)用于确保信息未被拦截或更改。
在选择对称加密算法的同时,也创建了消息认证算法,就像上面选择密码一样。
苹果
每条消息都必须包含一个消息认证码(MAC)。该认证码是使用对称密钥、数据包序列号和消息内容计算得出的。
MAC 是在对称密钥之外发送的,是会话期间通信的最后一部分。
SSH 如何与这些类型的加密一起工作?
SSH 默认使用 TCP 端口 22(端口并非固定)。服务器监听端口 22 以接收传入连接。
安全连接经过身份验证后,将启动 shell 环境。
客户端机器必须通过与服务器发起 TCP 握手来建立连接,从而确认安全的对称连接。
它必须验证服务器 ID 是否与通常保存在 RDA 密钥库文件中的先前记录相匹配。
连接分为两个阶段,首先两台机器必须就加密标准达成一致,然后用户必须使用密码等进行身份验证。
点击此处订阅我的电子报:
我每周都会在以下平台分享我的最佳发现:
- AWS
- JavaScript
- 网络爬虫
- 独立黑客
文章来源:https://dev.to/calvin087/what-is-ssh-and-how-does-it-work-e6n


