通过 SSH 访问

本章以Ubuntu 22.04 LTS为例,详解基于SSH协议的远程终端访问全流程及安全实践。


6.1 前言

SSH(Secure Shell)是Linux系统远程管理的核心协议,具备以下特性:

  • 加密传输(默认使用AES-256-GCM算法)

  • 端口转发(支持本地/远程/动态隧道)

  • 密钥认证(推荐Ed25519算法)

  • 会话保持(tmux/screen集成)


6.2 开机前准备

硬件要求

设备类型

规格要求

测试验证方法

主机

支持SSH指令集扩展

cat /proc/cpuinfo

网络接口

百兆及以上以太网卡

ethtool eth0

电源

支持IPMI远程管理

ipmitool chassis status

软件准备

  1. 安装openssh-server:

    sudo apt update && sudo apt install openssh-server
    
  2. 验证安装包签名:

    apt-key list | grep OpenSSH
    

6.3 开机

系统引导流程

  1. GRUB菜单选择(默认隐藏,按Esc显示)

  2. 内核加载阶段:

    dmesg | grep "SSH"  # 查看加密模块加载情况
    
  3. 服务启动顺序:

    graph TD
    A[systemd] --> B[ssh.service]
    B --> C[生成主机密钥]
    C --> D[监听22端口]
    

6.4 网络连接

网络配置(Netplan)

  1. 编辑配置文件:

    sudo nano /etc/netplan/00-installer-config.yaml
    
  2. 静态IP示例配置:

    network:
      ethernets:
        eth0:
          addresses: [192.168.1.100/24]
          gateway4: 192.168.1.1
          nameservers:
            addresses: [8.8.8.8, 1.1.1.1]
      version: 2
    

防火墙配置

sudo ufw allow 22/tcp  # 开放SSH端口
sudo ufw enable

6.5 终端访问

SSH服务端配置

  1. 修改配置文件:

    sudo nano /etc/ssh/sshd_config
    
  2. 建议修改项:

    Port 65222                      # 修改默认端口
    PermitRootLogin no              # 禁止root登录
    PasswordAuthentication no       # 禁用密码认证
    AllowUsers devops               # 白名单用户
    

客户端连接方式

Windows

  1. 使用PowerShell:

    ssh -p 65222 devops@192.168.1.100
    

Linux/macOS

ssh -i ~/.ssh/id_ed25519 -p 65222 devops@192.168.1.100

密钥管理

  1. 生成密钥对:

    ssh-keygen -t ed25519 -C "ubuntu-ssh-key"
    
  2. 部署公钥:

    ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 65222 devops@192.168.1.100
    

6.6 总结

性能指标对比

连接方式

认证延迟

传输速度

安全等级

密码认证

300-500ms

80MB/s

★★☆☆☆

密钥认证

150-250ms

95MB/s

★★★★☆

证书认证

200-300ms

90MB/s

★★★★★

安全加固清单

  1. 启用双因素认证:

    sudo apt install libpam-google-authenticator
    
  2. 配置自动封锁:

    sudo apt install fail2ban
    
  3. 定期轮换密钥:

    for key in ~/.ssh/*.pub; do ssh-keygen -t ed25519 -f "${key%.*}" -q -N ""; done
    

调试命令合集

# 查看实时连接
sudo ss -tnlp | grep sshd

# 分析登录日志
sudo journalctl -u ssh --since "10 minutes ago"

# 测试协议兼容性
nmap -sV -p 65222 --script ssh2-enum-algos 192.168.1.100

附:快速重置SSH服务

sudo systemctl restart ssh.service && sudo systemctl status ssh.service

文档版本控制
Rev 1.0.0 | 最后更新:2025-02-26 | 适用硬件版本:RK平台系列产品

版权声明
© 2025 福州牛新牛科技有限公司. 保留所有权利。