当前位置: 首页 > news >正文

SSH 远程控制及相关工具

SSH 远程控制及相关工具详解

一、SSH 概述

SSH(Secure Shell)是一种通过22 端口实现远程控制的网络协议,通过加密技术在不安全网络中提供安全的远程登录和数据传输服务。其核心由三部分协议组成:

  • 连接协议:负责建立和管理客户端与服务器的连接。

  • 用户认证协议:处理客户端的身份验证(如密码、密钥认证)。

  • 传输协议:对所有数据进行加密传输,采用对称加密算法保障安全性。

二、SSH 认证方法

1. 基于密码认证

  • 原理:通过输入远程服务器的用户名和密码进行身份验证。

  • 特点:简单易操作,但密码存在被暴力破解的风险。

  • 使用示例

ssh 用户名@对方IP地址
# 例如:ssh root@192.168.1.100

2. 基于密钥认证

  • 原理:通过密钥对(公钥 + 私钥)认证,公钥存于服务器,私钥存于客户端,无需输入密码即可登录。且密钥是一对一的

  • 特点:安全性更高,避免密码传输风险,适合批量管理或自动化场景。

  • 配置步骤

  1. 生成密钥对
ssh-keygen  # 一路回车默认生成
**密钥存于 ~/.ssh/ 目录(id_rsa 私钥,id_rsa.pub 公钥)**
  1. 上传公钥到服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@对方IP地址
# 例如:ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.100
  1. 无密码登录验证
ssh 用户名@对方IP地址  # 无需输入密码即可登录

三、SSH 连接过程

  1. 版本协商阶段:客户端与服务器交换 SSH 版本信息,确定使用的协议版本(如 SSH-2)。

  2. 密钥和算法协商:双方协商加密算法(如 AES)、认证算法(如 RSA)及会话密钥。

  3. 认证阶段:客户端通过密码或密钥进行身份验证。

  4. 会话请求:认证通过后,客户端请求建立会话。

  5. 交互会话:建立加密通道,客户端可执行远程命令,直至断开连接。

四、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 适合脚本自动化或一次性文件传输。

http://www.lryc.cn/news/602959.html

相关文章:

  • 常见的JVM虚拟机的参数详解
  • “量子通信”
  • 【C语言网络编程基础】TCP并发网络编程:io多路复用
  • 五自由度磁悬浮轴承转子:基于自适应陷波器的零振动攻克不平衡质量扰动的终极策略
  • linux du、df命令使用教程
  • 面向对象设计原则和设计模式分类
  • 开源AI智能体-JoyAgent集成Deepseek
  • C++模板元编程从入门到精通
  • [论文阅读] 人工智能 | 机器学习工作流的“救星”:数据虚拟化服务如何解决数据管理难题?
  • [机缘参悟-236]:通过AI人工神经网络理解人的思维特征:惯性思维、路径依赖、适应性、不同场合不同言行、经验、概率、常规与特殊情形(正态分布)、环境适应性
  • 5 分钟上手 Firecrawl
  • Java项目:基于SSM框架实现的社区团购管理系统【ssm+B/S架构+源码+数据库+毕业论文+答辩PPT+远程部署】
  • js的学习1
  • 如何理解有符号数在计算机中用​​补码​​存储
  • 阿里给AI To C战略戴上眼镜
  • 案例开发 - 日程管理 - 第三期
  • Android Handler 完全指南
  • 【QT搭建opencv环境】
  • 商城系统-项目测试
  • redis未授权getshell四种方式
  • Ubuntu24安装MariaDB/MySQL后不知道root密码如何解决
  • 基于STM32设计的智慧果园云监测系统_256
  • 基于Uniapp及Spring Boot的奢侈品二手交易平台的设计与实现/基于微信小程序的二手交易系统
  • linux安装zsh,oh-my-zsh,配置zsh主题及插件的方法
  • 机器学习基础-numpy
  • OpenMP 并行编程核心机制详解:从变量作用域到同步优化
  • SwinTransformer改进(14):集成MLCA注意力机制的Swin Transformer模型
  • Linux DNS解析2 -- 网关DNS代理的作用
  • 如何实现安卓端与苹果端互通的多种方案
  • unisS5800XP-G交换机配置命令之端口篇