上传者: gongxiaopingxsl
|
上传时间: 2025-11-15 10:49:08
|
文件大小: 246KB
|
文件类型: DOCX
SSH 原理之图文详解
SSH(Secure Shell)是一种安全的远程连接协议,它可以替代传统的 Telnet 协议,提供了更加安全的远程连接方式。下面我们来详细解释 SSH 的原理和配置选项。
Telnet 和 SSH 的比较
Telnet 是一个远程连接服务,具有 Server 端和 Client 端,Client 通过 Telnet 协议连接到服务器端。这是一种早期常用的远程连接方法,但是这种方法进行连接的过程中使用的都是明文进行传输,在同一网络中的其他用户很容易通过网络工具捕捉到该数据包进行分析进而获取到密码。这是一个很不安全的连接方法。Telnet 协议使用的是 23 号端口,是基于 TCP 的链接。
SSH 则不同,它可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止 DNS 和 IP 欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
SSH 的验证原理
SSH 验证方式主要有以下两种:
1. 基于口令的验证:这种方式是最简单的验证方式,客户端发送用户名和密码到服务器端,服务器端验证用户名和密码是否正确,如果正确则允许连接。
2. 基于密钥的验证:这种方式是更加安全的验证方式,客户端和服务器端都需要生成一对密钥,客户端将公钥发送到服务器端,服务器端验证公钥是否正确,如果正确则允许连接。
SSH 的配置选项
SSH 的配置文件主要分为服务器端和客户端:
服务器端:/etc/ssh/sshd_config
客户端:/etc/ssh/ssh_config
以下是一些常用的配置选项:
1. 限制 root 用户远程登录:可以在服务器端的配置文件中添加 `PermitRootLogin no` 语句来限制 root 用户远程登录。
2. 通过控制用户访问限制 SSH 访问:可以在服务器端的配置文件中添加 `AllowUsers` 和 `DenyUsers` 语句来控制用户访问限制 SSH 访问。
3. 指定协议版本:可以在服务器端的配置文件中添加 `Protocol 2` 语句来指定协议版本为 2.x。
4. 不要支持闲置会话,并配置 Idle Log Out Timeout 间隔:可以在服务器端的配置文件中添加 `ClientAliveInterval` 和 `ClientAliveCountMax` 语句来不要支持闲置会话,并配置 Idle Log Out Timeout 间隔。
5. 禁用基于主机的身份验证:可以在服务器端的配置文件中添加 `HostbasedAuthentication no` 语句来禁用基于主机的身份验证。
6. 使用 Chroot SSHD 将 SFTP 用户局限于其自己的主目录:可以在服务器端的配置文件中添加 `ChrootDirectory /home/%u` 语句来使用 Chroot SSHD 将 SFTP 用户局限于其自己的主目录。
7. 禁用空密码:可以在服务器端的配置文件中添加 `PermitEmptyPasswords no` 语句来禁用空密码。
8. 指令压缩:可以在服务器端的配置文件中添加 `Compression yes` 语句来启用压缩。
9. 设置日志级别:可以在服务器端的配置文件中添加 `LogLevel INFO` 语句来设置日志级别为 INFO 级别。
10. 支持图形界面操作:可以在服务器端的配置文件中添加 `X11Forwarding yes` 语句来支持图形界面操作。
这些配置选项可以帮助您更好地管理您的 SSH 服务器,提高安全性和性能。