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

Linux远程连接主机——ssh命令详解

摘要:SSH是OpenSSH套件中的加密远程连接工具,基于SSH协议提供安全的服务器管理通道。本文详解连接参数、认证方法和功能,提供实用操作示例。


一、SSH核心特性

SSH(Secure Shell)是行业标准的远程管理协议

  • 加密通信:所有传输数据加密,防止中间人攻击

  • 认证方式

    • 密码认证

    • 密钥对认证(更安全)

  • 协议版本

    • SSH-1(旧版,存在漏洞)

    • SSH-2(推荐,更安全)

基础语法

ssh [参数] [用户@]主机 [命令]

二、参数分类详解

1. 连接设置
参数说明示例
-p指定端口(默认22)ssh -p 2222 user@host
-l指定登录用户ssh -l admin 192.168.1.100
-4强制IPv4连接ssh -4 cloud-server.com
-6强制IPv6连接ssh -6 ipv6-host
2. 认证安全
参数说明示例
-i指定私钥文件ssh -i ~/.ssh/id_rsa admin@host
-o自定义配置项ssh -o "StrictHostKeyChecking=no" host
-c设置加密算法ssh -c aes256-ctr host
-v显示详细连接过程ssh -v host
3. 会话控制
参数说明示例
-f后台执行ssh -f -N -L 8080:localhost:80 host
-N不执行远程命令ssh -N -D 1080 proxy-host
-T禁用伪终端ssh -T git@github.com
-q静默模式ssh -q host "cat /proc/loadavg"
4. 端口转发
参数说明示例
-L本地端口转发ssh -L 8080:remote:80 host
-R远程端口转发ssh -R 2222:localhost:22 host
-D动态SOCKS代理ssh -D 1080 proxy-host

三、实战操作示例

1. 基础连接
# 连接到远程服务器(首次连接需确认指纹)
ssh 192.168.10.10
# 输入密码后进入交互式shell# 指定用户连接
ssh -l linuxprobe 192.168.10.10
2. 密钥认证配置
# 生成密钥对(默认保存在~/.ssh/)
ssh-keygen -t ed25519# 复制公钥到远程服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host# 使用密钥登录(无需密码)
ssh -i ~/.ssh/id_ed25519 user@host
3. 远程命令执行
# 执行单条命令后返回
ssh root@192.168.10.10 "free -m"# 执行多命令(分号分隔)
ssh host "uname -a; df -h"# 远程执行本地脚本
ssh host < local_script.sh
4. 端口转发应用
# 本地访问localhost:8080 → 远程服务器80端口
ssh -L 8080:localhost:80 user@host# 创建SOCKS5代理(浏览器设置代理127.0.0.1:1080)
ssh -D 1080 -q -N user@proxy-host
5. 文件传输配合
# 通过SSH安全传输文件(使用SCP)
scp -P 2222 local_file user@host:/remote/path# 使用SSH挂载远程目录(需安装sshfs)
sshfs user@host:/remote/path /local/mountpoint

四、高级功能与技巧

1. 连接复用
# ~/.ssh/config 配置
Host myserverHostName server.example.comUser adminPort 2222IdentityFile ~/.ssh/server_keyControlMaster autoControlPath ~/.ssh/control-%r@%h:%p# 首次连接建立主通道
ssh myserver# 后续连接复用通道(瞬间连接)
ssh myserver "date"
2. X11转发
# 远程运行图形程序(本地显示)
ssh -X user@host "gedit"# 信任模式(绕过X11安全限制)
ssh -Y user@host "firefox"
3. 跳板机连接
# 通过跳板机连接内网主机
ssh -J jumpuser@jump-host internal-user@internal-host# 等效于:
ssh -t jumpuser@jump-host ssh internal-user@internal-host
4. 会话保持
# 自动重连(每60秒检测)
ssh -o ServerAliveInterval=60 user@host# 客户端响应检测
ssh -o ServerAliveCountMax=3 user@host

五、安全注意事项

  1. 协议选择

    ssh -2 host  # 强制使用SSH-2协议(避免SSH-1漏洞)
  2. 密钥管理

    • 为不同服务使用不同密钥

    • 密钥文件设置600权限

    • 定期轮换密钥

  3. 安全配置

    # ~/.ssh/config 安全增强
    Host *Protocol 2ServerAliveInterval 30TCPKeepAlive yesIdentitiesOnly yes
  4. 高危操作规避

    • 避免使用-o StrictHostKeyChecking=no(忽略主机密钥验证)

    • 禁止root直接登录(修改/etc/ssh/sshd_config

    • 关闭密码认证(使用密钥)

审计建议:定期检查~/.ssh/known_hosts文件,移除不再访问的主机记录。使用ssh-keygen -R host可清除指定主机的旧指纹。

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

相关文章:

  • 算法-集合的使用
  • 性能优化 - 理论篇:CPU、内存、I/O诊断手段
  • 算法:二分查找
  • Spring Boot3.4.1 集成 mybatis plus
  • Ubuntu 22.04 上安装 PostgreSQL(使用官方 APT 源)
  • Linux随记(十八)
  • Windows MongoDB C++驱动安装
  • MS1023/MS1224——10MHz 到 80MHz、10:1 LVDS 并串转换器(串化器)/串并转换器(解串器)
  • ESOP股权管理平台完整解决方案
  • 线性调频波形测距测速信号处理——全代码+注释
  • WPS word 已有多级列表序号
  • Vue 3 源码层核心原理剖析(完整详解版)
  • 数据库操作-MySQL-4(JDBC编程)
  • Linux打开.img镜像文件
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit(5)
  • 【科研绘图系列】R语言绘制论文组合图形(multiple plots)
  • springMVC-9数据格式化
  • Kafka 和Redis 在系统架构中的位置
  • 【Spring AI】如何实现文生图功能
  • 【ISAQB大纲解读】Kafka消息总线被视为“自下而上设计”?
  • ISBN书号查询接口如何用PHP实现调用?
  • 什么是 Docker Compose 的网络(network),为什么你需要它,它是怎么工作的
  • 嵌入式Linux 期末复习指南(上)
  • SpringBoot3.2新特性:JdbcClient
  • Dify:启动 Web 服务的详细指南
  • 3.1 HarmonyOS NEXT分布式数据管理实战:跨设备同步、端云协同与安全保护
  • Aop + 注解实现数据字典类型转换 EasyExcel导出
  • Python 元组方法全集详解
  • Selenium 中 JavaScript 点击操作的原理及应用
  • Xilinx超过256m bit flash固件跳转失败问题