SSH 远程控制及相关工具详解
一、SSH 概述
SSH(Secure Shell)是一种通过22 端口实现远程控制的网络协议,通过加密技术在不安全网络中提供安全的远程登录和数据传输服务。其核心由三部分协议组成:
-
连接协议:负责建立和管理客户端与服务器的连接。
-
用户认证协议:处理客户端的身份验证(如密码、密钥认证)。
-
传输协议:对所有数据进行加密传输,采用对称加密算法保障安全性。
二、SSH 认证方法
1. 基于密码认证
-
原理:通过输入远程服务器的用户名和密码进行身份验证。
-
特点:简单易操作,但密码存在被暴力破解的风险。
-
使用示例:
ssh 用户名@对方IP地址
# 例如:ssh root@192.168.1.100
2. 基于密钥认证
-
原理:通过密钥对(公钥 + 私钥)认证,公钥存于服务器,私钥存于客户端,无需输入密码即可登录。且密钥是一对一的
-
特点:安全性更高,避免密码传输风险,适合批量管理或自动化场景。
-
配置步骤:
- 生成密钥对:
ssh-keygen # 一路回车默认生成
**密钥存于 ~/.ssh/ 目录(id_rsa 私钥,id_rsa.pub 公钥)**
- 上传公钥到服务器:
ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@对方IP地址
# 例如:ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.100
- 无密码登录验证:
ssh 用户名@对方IP地址 # 无需输入密码即可登录
三、SSH 连接过程
-
版本协商阶段:客户端与服务器交换 SSH 版本信息,确定使用的协议版本(如 SSH-2)。
-
密钥和算法协商:双方协商加密算法(如 AES)、认证算法(如 RSA)及会话密钥。
-
认证阶段:客户端通过密码或密钥进行身份验证。
-
会话请求:认证通过后,客户端请求建立会话。
-
交互会话:建立加密通道,客户端可执行远程命令,直至断开连接。
四、SSH 服务安装与管理
1. 安装 SSH 服务
若系统未安装 SSH 服务,可通过 yum 安装:
yum -y install openssh openssh-clients openssh-server
2. 服务管理
# 重启 SSH 服务
systemctl restart sshd
# 设置开机自启动
systemctl enable sshd
# 查看服务状态
systemctl status sshd
五、文件传输工具
1. sftp(SSH File Transfer Protocol)
-
特点:基于 SSH 的交互式文件传输协议,支持上传、下载及简单文件管理。支持一部分Linux命令
-
使用方法:
# 连接远程服务器
sftp 用户名@对方IP地址
# 例如:sftp root@192.168.1.100
# 常用命令
put 本地文件名 远程目录 # 上传文件(如:put test.txt /tmp/)
get 远程文件名 本地目录 # 下载文件(如:get /tmp/log.txt ./)
ls # 查看远程目录
lls # 查看本地目录
exit # 退出连接
2. scp(Secure Copy)
-
特点:基于 SSH 的非交互式文件传输工具,适用于 Linux 与 Linux 之间的文件拷贝。
-
使用方法:
# 上传本地文件到远程服务器
scp 本地文件路径 用户名@对方IP地址:远程目录
# 例如:scp ./data.tar.gz root@192.168.1.100:/backup/
# 下载远程文件到本地
scp 用户名@对方IP地址:远程文件路径 本地目录
# 例如:scp root@192.168.1.100:/var/log/messages ./
六、注意事项
-
SSH 连接成功后,可直接执行所有 Linux 命令,但默认不支持文件传输(需用 sftp 或 scp)。
-
为增强安全性,建议禁用密码认证,仅使用密钥认证,并修改默认端口(22)。
-
sftp 适合交互式操作,scp 适合脚本自动化或一次性文件传输。