{T}

Linux 环境搭建与 SSH 远程连接

概述:从零搭建 Linux 开发环境(虚拟机/WSL2/云服务器),配置 SSH 远程连接与密钥认证,建立高效的远程开发工作流。

前置知识

  • 了解虚拟化基本概念(宿主机、Guest OS)
  • 具备基本的终端/命令行操作能力

学习目标

  • 掌握主流虚拟化方案的选型与安装
  • 完成 Ubuntu Server / Rocky Linux 的系统安装
  • 配置 SSH 密钥认证实现免密登录
  • 排查网络连接与 SSH 服务的常见问题

1. 环境方案选型

1.1 方案对比决策

图表渲染中…
方案性能隔离性适用场景
WSL2接近原生中(共享内核)Windows 日常开发
虚拟机损耗 10-20%高(完整隔离)需要快照/多系统
云服务器原生完全隔离生产环境模拟
Docker接近原生中(共享内核)服务级隔离

1.2 虚拟机资源配置建议

用途CPU内存磁盘网络模式
学习/开发2 核2-4 GB40 GBNAT
模拟生产4 核8 GB100 GB桥接
CI/CD 测试2 核4 GB60 GBNAT

2. Ubuntu Server 安装要点

2.1 安装流程

图表渲染中…

关键配置项

步骤配置说明
网络DHCP 自动获取避免手动配置出错
镜像源阿里云/清华国内环境加速下载
存储Use an entire disk自动分区(/、/boot、swap)
SSHInstall OpenSSH server必选,否则无法远程连接

2.2 安装后验证

bash
# 登录系统
ubuntu login: username
Password: ********

# 查看 IP 地址
ip addr show
# 关注 eth0/ens33 的 inet 字段

# 确认 SSH 服务运行
systemctl status ssh
# 应显示 active (running)

3. Rocky Linux / CentOS 安装要点

3.1 与 Ubuntu 的差异

配置项Ubuntu ServerRocky Linux
安装界面Subiquity(现代)Anaconda(传统)
软件选择默认最小安装需手动选 Minimal Install
网络自动启用需手动开启 ONBOOT=yes
SSH安装时勾选默认已安装
防火墙ufw(默认关闭)firewalld(默认开启)

3.2 网络配置(关键差异)

bash
# Rocky Linux 网络配置文件
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

# 确保以下两项
BOOTPROTO=dhcp
ONBOOT=yes          # CentOS 默认可能是 no,必须改为 yes

# 重启网络
sudo systemctl restart network

# 验证
ip addr show

3.3 防火墙放行 SSH

bash
# Rocky Linux 默认开启防火墙,需放行 22 端口
sudo firewall-cmd --add-port=22/tcp --permanent
sudo firewall-cmd --reload

# 验证
sudo firewall-cmd --list-ports

4. SSH 远程连接

4.1 SSH 协议工作原理

图表渲染中…

4.2 基本连接

bash
# 基本语法
ssh username@ip_address

# 指定端口
ssh -p 2222 username@ip_address

# 首次连接会提示确认 Host Key
# Are you sure you want to continue connecting (yes/no)?
# 输入 yes 后,Host Key 保存到 ~/.ssh/known_hosts

4.3 SSH 客户端配置(简化登录)

bash
# ~/.ssh/config
Host dev
    HostName 192.168.31.77
    User tommark
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Host production
    HostName api.example.com
    User deploy
    Port 2222
    IdentityFile ~/.ssh/production_key
    ServerAliveInterval 60

# 使用别名连接
ssh dev
# 等价于: ssh -i ~/.ssh/id_ed25519 tommark@192.168.31.77

4.4 常用 SSH 客户端工具

工具平台特点
Terminal / iTerm2macOS原生体验,iTerm2 支持分屏
Windows TerminalWindows微软官方,支持 WSL/PowerShell
Termius全平台跨设备同步,团队共享
XshellWindows功能丰富,个人免费
MobaXtermWindows集成 SFTP/X11

5. SSH 密钥认证(免密登录)

5.1 配置流程

图表渲染中…

5.2 生成密钥对

bash
# 推荐 Ed25519(更安全、更快)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 或 RSA 4096(兼容性更好)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# 生成文件:
# ~/.ssh/id_ed25519      ← 私钥(绝不泄露)
# ~/.ssh/id_ed25519.pub  ← 公钥(可公开)

5.3 上传公钥

bash
# 方式一:ssh-copy-id(推荐)
ssh-copy-id username@192.168.31.77

# 方式二:手动复制
cat ~/.ssh/id_ed25519.pub | ssh username@192.168.31.77 \
  "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

5.4 服务器端权限设置

bash
# 权限必须正确,否则 SSH 会拒绝使用密钥
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

# 确认所有者
chown -R $USER:$USER ~/.ssh

5.5 禁用密码登录(生产环境推荐)

bash
# /etc/ssh/sshd_config
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
PermitRootLogin prohibit-password    # 禁止 root 密码登录

# 重启 SSH 服务
sudo systemctl restart ssh    # Ubuntu
sudo systemctl restart sshd   # Rocky/CentOS

# 验证配置语法
sudo sshd -t

警告:禁用密码登录前,务必先确认密钥登录可用,否则可能锁死自己。


6. 网络问题排查

6.1 排查流程

图表渲染中…

6.2 常用排查命令

bash
# 查看 IP 地址
ip addr show

# 测试网络连通性
ping -c 4 192.168.31.77

# 检查 SSH 服务状态
systemctl status ssh

# 检查端口监听
ss -tlnp | grep 22

# 查看 SSH 日志(排查认证失败)
sudo tail -f /var/log/auth.log    # Ubuntu
sudo tail -f /var/log/secure      # Rocky/CentOS

# 检查防火墙
sudo ufw status                   # Ubuntu
sudo firewall-cmd --list-all      # Rocky/CentOS

6.3 虚拟机网络模式

模式说明适用场景
NAT虚拟机通过宿主机上网,外部不可访问学习开发(推荐)
桥接虚拟机获得独立 IP,与宿主机同网段模拟真实服务器
Host-Only仅宿主机可访问虚拟机安全隔离测试

7. 常见问题与排错

问题原因解决方案
启动卡在 "wait for network"网络适配器未连接虚拟机设置中勾选"连接网络适配器"
SSH 连接被拒绝sshd 未启动sudo systemctl start sshd
Permission denied (publickey)密钥权限过大chmod 600 ~/.ssh/id_*
Host key verification failed服务器重装后 IP 复用删除 ~/.ssh/known_hosts 中对应行
云服务器无法连接安全组未放行 22 端口云控制台添加入站规则
连接超时防火墙阻止检查 ufw/firewalld/安全组

8. 最佳实践

  1. 密钥认证优先:生产环境禁用密码登录,仅允许 Ed25519 密钥
  2. 修改默认端口:将 SSH 端口改为非标准值(如 2222),减少扫描攻击
  3. 限制来源 IP:安全组/防火墙仅允许办公网 IP 访问 22 端口
  4. 使用 SSH Config:为每台服务器配置别名,避免记忆 IP 和参数
  5. 定期轮换密钥:团队共享密钥应定期更换,离职人员立即移除公钥

8.5 补充:SSH 客户端工具与安装后验证

常用 SSH 客户端工具

工具平台特点
iTerm2macOS免费强大
Windows TerminalWindows现代界面,内置 SSH
PuTTYWindows经典免费
MobaXtermWindows集成 SFTP
Termius全平台云同步

安装后验证

登录后确认环境可用:

bash
ip addr show              # 确认 IP
ping -c 4 www.baidu.com   # 确认外网通畅

虚拟机快捷键:VMware Fusion 释放鼠标 Ctrl+Cmd、快照 Ctrl+Cmd+S;VirtualBox 主机键为右 Ctrl。


9. 延伸阅读