当前位置:首页 > 电脑教程 > 正文

命令行怎么SSH?

使用系统命令行SSH需输入 ssh 用户名@远程主机地址 -p 端口号(默认端口22可省略),首次连接需确认主机密钥,之后输入密码或使用密钥认证登录远程服务器。

掌握命令行 SSH 连接:从基础到进阶实践

SSH(Secure Shell)是远程管理服务器和网络设备的黄金标准协议,通过加密通道保障数据传输安全,本文详细讲解不同系统下命令行 SSH 的操作方法,适用于开发、运维及安全人员。


SSH 基础概念

  1. 核心作用

    • 远程登录服务器执行命令
    • 安全传输文件(配合 SCP/SFTP)
    • 端口转发和隧道加密
      安全提示:默认使用 22 端口,建议修改为高位端口(如 5022)降低攻击风险。
  2. 认证方式对比
    | 方式 | 安全性 | 便利性 | 适用场景 |
    |—————-|———–|————|——————–|
    | 密码登录 | 低 | 高 | 临时访问 |
    | 密钥对认证 | 极高 | 中 | 生产环境/自动化 |


各系统 SSH 安装与连接步骤

▍ Windows 系统

  1. 安装 OpenSSH(Windows 10/11 内置):

    # 管理员身份运行 PowerShell
    Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
    Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
  2. 基础连接命令

    ssh username@server_ip -p 22
    # 示例:ssh admin@192.168.1.100 -p 5022

▍ macOS/Linux 系统

  1. 检查 SSH 客户端(通常预装):

    命令行怎么SSH?  第1张

    ssh -V  # 显示版本即表示可用
  2. 连接服务器

    ssh -i ~/.ssh/private_key.pem user@hostname

密钥认证:安全登录的核心实践

▶ 生成密钥对(所有系统通用)

ssh-keygen -t ed25519 -C "your_email@example.com"  
# -t 指定密钥类型(ed25519 比 RSA 更安全高效)
# 默认保存路径:~/.ssh/id_ed25519(私钥)和 ~/.ssh/id_ed25519.pub(公钥)

▶ 上传公钥到服务器

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip  
# 输入密码后,后续登录无需密码

▶ 配置文件简化登录
创建 ~/.ssh/config 文件:

Host myserver  
  HostName 203.0.113.5  
  User ubuntu  
  Port 5022  
  IdentityFile ~/.ssh/myserver_key.pem  

之后只需执行:

ssh myserver  # 自动使用配置参数

实用高阶操作

  1. 远程执行命令(不进入 Shell):

    ssh user@host "ls -l /var/log"
  2. 文件传输(SCP 命令):

    # 本地 → 远程
    scp -P 5022 backup.tar.gz user@host:/opt/backups/  
    # 远程 → 本地
    scp user@host:/home/user/report.pdf ./downloads/
  3. 端口转发(调试内网服务):

    ssh -L 8080:localhost:80 user@gateway_server  # 将本地8080映射到远程80端口

故障排除指南

错误提示 解决方案
Permission denied (publickey) 检查 ~/.ssh 目录权限是否为 700
确认公钥已追加到服务器 ~/.ssh/authorized_keys
Connection timed out 验证防火墙是否开放端口
使用 telnet server_ip 22 测试端口连通性
Host key verification failed 删除 ~/.ssh/known_hosts 中对应 IP 的记录

安全最佳实践

  1. 禁用密码登录(修改服务器配置):
    编辑 /etc/ssh/sshd_config

    PasswordAuthentication no  
    PermitRootLogin no  

    重启服务:sudo systemctl restart sshd

  2. 密钥管理原则

    • 私钥权限设为 600:chmod 600 ~/.ssh/id_ed25519
    • 使用密码保护密钥(ssh-keygen 时设置 passphrase)
    • 定期轮换密钥(每年至少一次)

引用说明:本文操作基于 OpenSSH 8.9 官方文档及 NIST 网络安全框架建议,Linux 系统遵循 Filesystem Hierarchy Standard (FHS),Windows 操作兼容 PowerShell 7.0+ 环境,密钥算法推荐参照 NSA 2025 年《Commercial National Security Algorithm Suite》指南。

通过命令行 SSH 可高效管理全球任意服务器,掌握密钥认证与端口转发,将大幅提升工作流安全性和自动化能力,建议在测试环境充分演练后应用于生产系统。

0