当前位置:首页 > 云服务器 > 正文

linux 切换服务器

在 Linux 中 切换服务器可先执行 exit 退出当前会话,再用 ssh 用户名@目标服务器IP 连接至新

核心思路

Linux 环境中切换服务器的本质是通过 SSH 协议建立与目标服务器的安全连接,核心手段包括:利用 ~/.ssh/config 文件预置多台服务器的配置参数、结合终端快捷键/插件实现快速切换、借助会话管理工具维持并行连接,以下从准备到实践逐步展开说明。


前置条件与基础准备

确保已安装 OpenSSH 客户端

绝大多数 Linux 发行版默认集成 OpenSSH,可通过以下命令验证:

ssh -V # 查看本地 SSH 版本

若未安装,需先执行包管理器安装(如 Ubuntu/Debian 使用 sudo apt install openssh-client)。

linux 切换服务器 第1张

获取目标服务器访问凭证

需提前准备好以下至少一项:

| 认证方式 | 要求 |

|—————-|———————————————————————-|

| 密码 | 知道目标服务器的用户账号及对应密码 |

| SSH 密钥对 | 已在本地生成公私钥对,并将公钥上传至目标服务器的 ~/.ssh/authorized_keys |

| 动态令牌 | 部分企业环境要求二次验证(如 Google Authenticator) |


关键配置:~/.ssh/config 文件详解

此文件是 SSH 的全局配置文件,通过定义 “Host” 别名可大幅简化后续操作,以下是典型配置示例及解释:

配置项 作用 示例值 说明
Host 为服务器起一个易记的别名 prod-db, dev-web 后续直接用该别名代替 IP/域名发起连接
HostName 目标服务器的真实地址(IP 或域名) 168.1.100, example.com 必填项,否则无法定位服务器
User 登录使用的用户名 root, ubuntu 若不填则默认当前系统用户名
Port SSH 服务监听的端口(非默认 22 时必填) 2222 常见于云厂商随机分配端口的场景
IdentityFile 指定用于该主机的私钥路径(优先于默认 ~/.ssh/id_rsa) ~/.ssh/id_prod_rsa 推荐为不同服务器生成专用密钥对,提升安全性
ForwardAgent 是否转发本地代理(用于跳板机场景) yes 设为 yes 可将本机的 SSH Agent 转发至远程服务器
Compression 数据传输压缩级别(yes/no/lz4 等) yes 网络较差时开启可加速传输

配置生效验证:修改后无需重启,下次执行 ssh <Host别名> 会自动加载新配置。

linux 切换服务器 第2张

实际切换操作指南

场景 1:首次登录某台已配置的服务器

假设 ~/.ssh/config 中已有如下配置:

Host test-server HostName 10.0.0.5 User admin IdentityFile ~/.ssh/test_key

只需在终端输入:

linux 切换服务器 第3张

ssh test-server # 自动使用配置中的用户名、密钥和端口(未指定则为22)

场景 2:临时覆盖配置参数

若需临时修改某次连接的参数(如更换端口),可在命令行追加参数,优先级高于 ~/.ssh/config:

ssh -p 3000 user@example.com # 强制使用3000端口,忽略原配置中的Port设置

场景 3:快速切换多个活跃会话

推荐使用以下两种方式管理多台服务器的并发连接:

| 工具/方法 | 优势 | 基本用法 |

|—————–|———————————————————————-|——————————————-|

| tmux/screen | 支持会话分离(后台运行)、窗口分割、历史回溯 | tmux → 新建会话;Ctrl+B+ → 垂直分屏 |

| & 后台运行 | 简单轻量,适合短期任务 | ssh server & → 按 Enter 返回前台 |

| byobu 插件 | 增强版状态栏显示当前连接信息(需配合 tmux/screen) | 安装后自动集成,无需额外配置 |


常见问题排查手册

现象 可能原因及解决方案
Permission denied 检查 ~/.ssh/config 的文件权限是否为 600(chmod 600 ~/.ssh/config);

确认目标服务器的 ~/.ssh/authorized_keys 权限为 600;

若用密码登录,检查账号是否被锁定(passwd -S <username>)。

Connection refused 核对 HostName 是否正确(注意大小写);

检查目标服务器 SSH 服务是否运行(systemctl status sshd);

确认防火墙未阻止 SSH 端口(ufw status 或 iptables -L)。

Unknown host key 这是正常安全提示,首次连接会选择是否信任该主机公钥;

若需自动接受,可在 ~/.ssh/config 中添加 StrictHostKeyChecking no(不推荐生产环境使用)。

卡顿或延迟高 启用压缩(Compression yes);

减少不必要的日志输出(LogLevel ERROR);

升级网络带宽或切换低负载时段。


相关问题与解答

Q1:如何在一台跳板机上通过单一命令跳转到内网服务器?

:可在 ~/.ssh/config 中使用 ProxyJump 参数实现级联跳转。

Host inner-server HostName 172.16.0.2 # 内网服务器真实 IP User appuser IdentityFile ~/.ssh/inner_key ProxyJump bastion-host # 跳板机别名(需已配置)

此后只需执行 ssh inner-server,系统会自动先连接到 bastion-host,再从其跳转至内网服务器。

Q2:忘记了某台服务器的 SSH 密钥密码怎么办?

:若使用的是带密码的 RSA 密钥,可通过以下步骤重置:

  1. 找到对应的私钥文件(如 ~/.ssh/id_rsa);
  2. 使用 ssh-keygen -p -f ~/.ssh/id_rsa 进入交互式修改模式;
  3. 选择 “Change passphrase”,输入旧密码和新密码;
  4. 若完全遗忘旧密码,需删除原密钥对(rm ~/.ssh/id_rsa),重新生成新的密钥对并上传公钥至服务器。

0