前言

在前两期内容中,我们已经认识了 Linux 并完成了 Linux 系统的安装与普通用户的配置。本期教程,我们将进入远程管理与网络配置的核心环节,主要涵盖以下三个关键内容:远程连接工具 Xshell 的使用、静态 IP 的配置逻辑以及更安全的密钥登录方式。

特别说明:本期内容主要针对云服务器和VMware虚拟机,WSL通常用于在Windows上快速使用Linux功能,方便测试与开发,完全不需要使用这么复杂的配置。

1 Xshell

1.1 如何操作远程服务器?

在实际的生产环境或学习场景中,我们所使用的 Linux 系统往往并非安装在本地物理机上,而是托管于远程的云服务器或虚拟机中。假设您购买了一台位于异地的云服务器,显然无法亲自前往数据中心通过物理键盘和显示器进行操作。那么,如何实现对这台远程主机的控制呢?

很明显,我们需要使用网络和特定的连接工具,对远程的服务器进行操控。

1.2 远程连接工具 Xshell

Xshell 是一款强大的终端模拟器,通过 SSH、Telnet、Rlogin、SFTP 等协议远程连接和管理 Linux、Unix 等服务器。它具有直观的用户界面,支持多标签会话管理、脚本自动化和密钥认证等功能,能够提供稳定且安全的远程访问体验。

下载地址:Xshell官网

1.3 使用 Xshell 暂时连接 Rocky Linux

注意是暂时连接,后面配置静态IP后连接会失效。使用 Xshell 暂时连接 Rocky Linux,不用在VMware一直盯着一个小屏幕看,也能够复制粘贴命令,方便后续操作。

登入 Rocky Linux 后,在VMware虚拟机输入如下命令

# 拿到需要连接的ip地址
ip a

Linux 教程「第三期」:Xshell、静态IP、密钥登录

打开Xshell,直接输入该IP地址并回车进行连接,输入Rocky Linux的用户名和密码后即可。

Linux 教程「第三期」:Xshell、静态IP、密钥登录

2 静态IP

2.1 为什么需要配置静态 IP

配置静态 IP 的主要目的是确保外部服务的服务器(如 Web 服务器、数据库、运行监控等)不会因为IP地址变动导致无法访问的情况。在默认的 DHCP(动态主机配置协议)模式下,服务器每次重启或租约到期后,路由器可能会分配新的 IP 地址。

然而,在如今的环境中,配置静态 IP 的需求已大大减少:

  1. 在本地测试的虚拟机中,即使 IP 地址过期,重新分配的 IP 地址可能与原来相同。
  2. 在本地测试的虚拟机中,IPv6 地址不会过期,直接使用 IPv6 连接可能更简单便捷。
  3. 云服务器通常已经拥有固定的公网 IP,无需手动配置静态 IP。

本着学习的目的,可以试着学习如何配置静态IP。

2.2 配置静态 IPv4 地址

2.2.1 创建普通账户(可选)

在上一期文章中,在虚拟机安装Rocky Linux时已经设置了的普通账户 rockylinux,如果你在安装系统时忘记创建了,也可以使用下面的命令进行创建。

# 以root身份登录

# 创建用户fk0
adduser fk0

# 给fk0设置密码
passwd fk0

# 将fk0加入wheel用户组,使得它能够使用sudo执行某些命令
usermod -aG wheel fk0

# 切换到用户fk0
su - fk0

2.2.1 使用命令行进行配置

在 Rocky Linux 10 及以上的版本,传统的 ifcfg 脚本已被弃用,官方推荐通过 NetworkManager 来管理网络配置

首先,如图所示打开 VMware 中的「虚拟网络编辑器」

Linux 教程「第三期」:Xshell、静态IP、密钥登录

一般没有修改过配置的都会有一个NAT类型的网络,选中这个NAT网络后,接着点击右边的「NAT设置」

Linux 教程「第三期」:Xshell、静态IP、密钥登录

「NAT设置」,可以看到「子网IP」192.168.126.0「子网掩码」255.255.255.0「网关IP」192.168.126.2

Linux 教程「第三期」:Xshell、静态IP、密钥登录

在 Xshell 中通过 nmcli deviceip a 命令查看网卡名称

Linux 教程「第三期」:Xshell、静态IP、密钥登录

已知网卡名称为 ens160 ,以及「网关IP」「子网IP」「子网掩码」,按序执行以下命令

# 1. 配置 IP 地址和子网掩码
# IP 地址需要根据「子网IP」对应
# 例如上面是「子网IP」是 192.168.126.0
# 在这里就可以设置为192.168.126.101
# 如果你的「子网掩码」也是255.255.255.0
# 那么在IP 地址后面用/24就表示了这个「子网掩码」
# 所以最终的IP 地址是 192.168.126.101/24
nmcli con mod ens160 ipv4.addresses 192.168.126.101/24

# 2. 设置 IPv4 为手动模式
nmcli con mod ens160 ipv4.method manual

# 3. 设置网关,根据上面的信息我们可以知道网关是192.168.126.2
nmcli con mod ens160 ipv4.gateway 192.168.126.2

# 4. 设置 DNS 服务器(多个地址用空格隔开)
nmcli con mod ens160 ipv4.dns "114.114.115.115 114.114.114.114"

# 5. 设置开机自启
nmcli con mod ens160 connection.autoconnect yes

# 6. 重启网络连接以生效
nmcli con down ens160 && nmcli con up ens160

配置完成重启网络连接后,Xshell会因为IP地址变化而自动断开连接,也就是说上面暂时性的连接就不用了,接着我们就可以使用 192.168.126.101 这个IP地址在 Xshell 连接到 Rocky Linux。

2.2.2 使用图形化界面配置

可以使用下面的命令,进入图形化界面进行配置

sudo nmtui

参考 「2.2.1 使用命令行进行配置」中的IP地址、网关、DNS服务器可以得到如下配置

Linux 教程「第三期」:Xshell、静态IP、密钥登录

退出后,同样需要执行重启网络连接的命令

nmcli con down ens160 && nmcli con up ens160

配置完成重启网络连接后,Xshell会因为IP地址变化而自动断开连接,也就是说上面暂时性的连接就不用了,接着我们就可以使用 192.168.126.101 这个IP地址在 Xshell 连接到 Rocky Linux。

3 密钥登录(可选)

以下内容更偏向实际工作中遇到的情况,实际工作中强烈建议使用密钥登录,对于本地开发测试来说密钥登录是可选的。

3.1 核心概念:SSH 协议

SSH(Secure Shell)是一种建立在应用层基础上的安全协议。简单来说,它在本地计算机与远程服务器之间搭建了一条加密的通信隧道。通过这条隧道,发送的指令和数据都会被加密传输,从而防止被第三方窃取或篡改。它是目前管理 Linux 服务器最标准、最安全的方式。

3.2 为什么使用密钥

尽管有了SSH协议,操作远程服务器的过程中会被加密,不过并不代表不会被攻击或中间人监听。使用密码远程登录时可能会被暴力破解,如果用密钥登录,即使普通密码泄露,攻击者在没有私钥的情况下也是无法登录,密钥登录也是企业中或者工作中常用或推荐的做法。

3.3 生成密钥

使用 Xshell 本地生成密钥

Linux 教程「第三期」:Xshell、静态IP、密钥登录

Linux 教程「第三期」:Xshell、静态IP、密钥登录

Linux 教程「第三期」:Xshell、静态IP、密钥登录

将密钥另存为 .pub 文件

Linux 教程「第三期」:Xshell、静态IP、密钥登录

3.4 导入密钥到Linux

使用普通用户创建目录,并将公钥内容导入到Linux

mkdir -p ~/.ssh
chmod 700 ~/.ssh

# 请确保公钥内容完整且为单行。
echo "在此处粘贴您的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

修复 SELinux 上下文(可选): Rocky Linux 默认启用 SELinux,若上下文不正确,SSH 服务将拒绝读取密钥文件。请执行以下命令修复:

restorecon -Rv ~/.ssh

3.5 配置 SSH 服务

检查 SSH 服务配置

sudo vi /etc/ssh/sshd_config

# 找到以下内容,按a进入编辑模式,去掉这个内容前面的“#”号,解开注释使得配置生效
PubkeyAuthentication yes

# 修改好后使用Esc键退出编辑,输入:wq保存退出

重启 SSH 服务

sudo systemctl restart sshd

3.6 Xshell 使用密钥连接

来到Xshell,只有导入对应密钥的用户才能使用密钥登录。大家可以手动尝试输入一个不存在的用户名会触发服务器未找到该密钥的错误。

Linux 教程「第三期」:Xshell、静态IP、密钥登录

这样就成功的使用密钥进行远程连接,避免了泄露密码的风险。

猜你喜欢😋