凌峰创科服务平台

Linux如何远程访问另一台Linux服务器?

核心方法:使用 SSH (Secure Shell)

SSH 是目前 Linux/Unix 系统远程管理的事实标准。

Linux如何远程访问另一台Linux服务器?-图1
(图片来源网络,侵删)

基本登录(最常用)

当你知道服务器的 IP 地址或域名,以及你的用户名时,可以使用以下命令格式:

ssh [用户名]@[服务器IP地址或域名]

示例:

假设你的服务器 IP 地址是 168.1.100,你想用 root 用户登录。

ssh root@192.168.1.100

执行后,系统会提示你输入该用户的密码,输入密码时,屏幕上不会显示任何字符(这是正常的安全设计),直接输入后按回车键即可。

Linux如何远程访问另一台Linux服务器?-图2
(图片来源网络,侵删)

首次连接提示: 如果是第一次连接这台服务器,你会看到类似下面的警告,这是因为 SSH 无法验证服务器的“主机密钥”(用于确认你连接的是正确的服务器,没有被中间人攻击),输入 yes 并回车即可。

The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.1.100' (ECDSA) to the list of known hosts.

之后,你的本地 ~/.ssh/known_hosts 文件会保存这台服务器的密钥,下次连接就不会再提示了。

指定不同的 SSH 端口

默认情况下,SSH 服务监听在 22 端口,但出于安全考虑,很多管理员会修改默认端口,这时,你需要使用 -p 参数来指定端口。

ssh -p [端口号] [用户名]@[服务器IP地址或域名]

示例:

Linux如何远程访问另一台Linux服务器?-图3
(图片来源网络,侵删)

如果服务器的 SSH 端口被修改为 2222,用户仍然是 root

ssh -p 2222 root@192.168.1.100

更安全的登录方式:SSH 密钥对

每次输入密码很麻烦,也不够安全,最佳实践是使用 SSH 密钥对 进行认证,这是一种“公钥/私钥”机制,你只需要在本地生成一次密钥,然后将公钥上传到服务器,之后就可以实现免密码登录了。

步骤:

第一步:在本地客户端生成 SSH 密钥对

如果你的 ~/.ssh/ 目录下没有 id_rsa(私钥)和 id_rsa.pub(公钥)文件,就运行以下命令:

ssh-keygen -t rsa -b 4096

一路按回车键即可(使用默认的文件名和空密码),如果密钥已存在,系统会提示你是否覆盖,通常选择 n (no)。

第二步:将公钥上传到服务器

使用 ssh-copy-id 命令可以轻松完成,它会自动将你的公钥追加到服务器上用户的 ~/.ssh/authorized_keys 文件中。

ssh-copy-id -p [端口号] [用户名]@[服务器IP地址或域名]

示例:

ssh-copy-id -p 2222 root@192.168.1.100

执行后,它会要求你输入一次 root 用户的密码,验证通过后,你的公钥就安全地复制到服务器上了。

第三步:免密码登录

你可以直接 SSH 登录,而无需输入密码了。

ssh -p 2222 root@192.168.1.100

进阶技巧和配置

使用配置文件简化连接

当你需要频繁连接多台服务器时,每次都输入 -p 和用户名会很繁琐,你可以使用 SSH 的配置文件 ~/.ssh/config 来为每台服务器设置一个别名。

编辑配置文件:

nano ~/.ssh/config

添加以下内容:

# 为服务器1设置别名
Host server1
    HostName 192.168.1.100
    User root
    Port 2222
# 为服务器2设置别名
Host server2
    HostName example.com
    User myuser
    Port 22

配置说明:

  • Host: 你在命令行中使用的别名(server1)。
  • HostName: 服务器的真实 IP 地址或域名。
  • User: 默认登录用户名。
  • Port: 默认 SSH 端口。

使用别名登录:

登录变得非常简单:

ssh server1

通过中间服务器(堡垒机/跳板机)连接

如果你的本地电脑不能直接访问目标服务器,但可以访问一台中间服务器(我们称之为“堡垒机”或“跳板机”),你可以使用 -J 参数进行“代理跳转”。

ssh -J [跳板机用户]@[跳板机IP] [目标服务器用户]@[目标服务器IP]

示例:

你只能连接到 gateway (IP 0.0.1),然后通过它连接到 db-server (IP 168.1.200)。

ssh -J user@10.0.0.1 root@192.168.1.200

这样,SSH 会先帮你登录到 gateway,然后从 gateway 再登录到 db-server


其他访问方式(了解即可)

除了 SSH,还有一些其他方式,但它们要么不安全,要么用于特定场景。

Telnet

  • 协议: 明文传输,非常不安全。
  • 用途: 几乎已被完全淘汰,强烈不推荐使用。
  • 命令: telnet [IP] [端口]

Rlogin / Rsh

  • 协议: 基于信任关系,不验证密码,同样非常不安全。
  • 用途: 已被 SSH 完全取代。

VNC / RDP (图形界面远程桌面)

  • 用途: 如果你需要操作服务器的图形用户界面,而不是命令行。
  • VNC: 常用于 Linux/Unix 系统。
  • RDP: 主要用于 Windows 系统(在 Linux 上也有客户端,如 remmina)。
  • 注意: 它们是“远程桌面”协议,与“远程终端”协议(如 SSH)不同,它们传输的是整个桌面画面,占用带宽较高。

使用文件传输工具

如果你只是想传输文件,而不是登录服务器,可以使用基于 SSH 的工具:

  • scp: 安全的文件拷贝。
  • rsync: 高效的文件同步工具。
  • sftp: 交互式的安全文件传输,类似于 FTP。

总结与最佳实践

方法 命令示例 优点 缺点 推荐度
SSH (密码) ssh user@ip 简单,所有服务器都支持 密码易被暴力破解,需手动输入 ⭐⭐⭐
SSH (密钥) ssh user@ip (需先配置密钥) 安全、便捷、免密码 需要初始配置密钥 ⭐⭐⭐⭐⭐ (强烈推荐)
SSH (配置文件) ssh myserver 管理多台服务器非常方便 需要额外配置文件 ⭐⭐⭐⭐⭐ (必备技能)
SSH (跳板机) ssh -J jumphost user@target 解决网络访问限制 命令稍长 ⭐⭐⭐⭐ (根据网络环境)
VNC/RDP vncviewer ip:port 可视化操作 占用带宽高,非命令行场景 ⭐⭐ (特定场景使用)

核心建议:

  1. 首选 SSH:对于所有命令行操作,SSH 是你的不二之选。
  2. 务必使用密钥认证:为了安全和便利,请立即配置和使用 SSH 密钥对。
  3. 善用配置文件:如果你管理超过一台服务器,花几分钟配置 ~/.ssh/config 会极大提升你的工作效率。
  4. 修改默认端口:在服务器上,将 SSH 端口从 22 修改为一个不常用的端口,可以避免大量自动化扫描攻击。
  5. 使用防火墙:确保服务
分享:
扫描分享到社交APP
上一篇
下一篇