SSH 远程管理
H(Secure Shell) 是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的Telent(远程登录)、RSH(Remote Shell, 远程执行命令)、RCP( Remote File Copy, 远程文件复制)等应用相比, SSH 协议提供了更好的安全性。
配置 OpenSSH 服务端
1. 服务监听选项
sshd 服务使用的默认端口号为22, 必要时建议修改此端口号,并指定监听服务的具体 IP地址,以提高在网络中的隐蔽性。除此之外, SSH 协议的版本选用V2 比V1 的安全性要更好,禁用DNS反向解析可以提高服务器的响应速度。
2. 用 户 登 录 控 制
sshd 服务默认允许 root用户登录,但在 Internet 中使用时是非常不安全的。普遍的做 法如下:先以普通用户远程登入,进入安全 Shell 环境后,根据实际需要使用 su 命令切换为 root 用户。
3. 登 录 验 证 方 式
对于服务器的远程管理,除了用户账号的安全控制以外,登录验证的方式也非常重要。
密码验证:对服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户端角度来看,正在连接的服务器有可能被假冒;从服务器角度来看,当遭遇密码穷举(暴力破解)攻击时防御能力比较弱。
密钥对验证:要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录 时,系统将使用公钥、私钥进行加密/解密关联验证,大大增强了远程管理的安全性。该方式不易被假冒,且可以免交互登录,在 Shell 中被广泛使用。
当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求较 高的服务器,建议将密码验证方式禁用,只允许启用密钥对验证方式;若没有特殊要求,则两种方式都可启用。
使用SSH 客户端程序
1. 命令程序ssh、scp、sftp
1)ssh 远程登录
通过ssh 命令可以远程登录 sshd 服务,为用户提供一个安全的 Shell 环境,以便对服务器进行管理和维护。使用时应指定登录用户、目标主机地址作为参数。
2)scp 远程复制
通 过scp 命令可以利用 SSH 安全连接与远程主机相互复制文件。使用 scp 命令时,除 了必须指定复制源、目标之外,还应指定目标主机地址、登录用户,执行后根据提示输入验 证口令即可。
3) sftp 安全 FTP
通 过sftp 命令可以利用 SSH 安全连接与远程主机上传、下载文件,采用了与 FTP 类 似的登录过程和交互式环境,便于目录资源管理。
2. 图形工具Xshell
图形工具Xshell 是 Windows 下一款功能非常强大的安全终端模拟软件,支持 Telnet、SSH 、SFTP 等协议,可以方便地对Linux 主机进行远程管理。
构建密钥对验证的 SSH 体系
密钥对验证方式可以为远程登录提供更好的安全性。整个过程包括四步,首先要在SSH 客户以zhangsan 用户身份 创建密钥对,并且要将创建的公钥文件上传至 SSH 服务器端,然后要将公钥信息导入服务器端的目标用户lisi的公钥数据库,最后以服务器端用户lisi的身份登录验证。
1. 在客户端创建密钥对
2. 将公钥文件上传至服务器
将上一步生成的公钥文件上传至服务器,并部署到服务器端用户的公钥数据库中。上传公钥文件时可以选择 SCP、FTP、Samba、HTTP 甚至发送 E-mail 等任何方式。
3. 在服务器中导入公钥文本
4. 在客户端使用密钥对验证
经过“客户端创建密钥对”、“将公钥上传至服务器”、“在服务器中导入公钥文本”与“在客户端使用密钥对验证”四个步骤, SSH 密钥对验证体系已经构建完成。