远程登录 Linux 服务器使运维人员无需物理接触设备,即可进行系统管理、软件部署、故障排查和性能监控,实现统一高效的管理与资源利用,并提供安全访问方式。
在当今的互联网和云计算环境中,远程登录和管理 Linux 服务器是系统管理员、开发人员和 IT 从业者的核心技能,无论您是需要部署应用、维护系统还是排查问题,掌握安全、高效的登录方法至关重要,本文将详细介绍几种主流的 Linux 服务器登录方式,重点强调最安全、最常用的方法,并提供操作指南和最佳实践。
Linux 服务器通常部署在数据中心或云端,物理访问不便,远程登录允许您:
- 系统管理: 安装/卸载软件、配置服务、管理用户、监控性能。
- 文件操作: 上传、下载、编辑、管理服务器上的文件。
- 应用部署与维护: 启动、停止、重启应用程序,查看日志。
- 故障排除: 诊断系统或应用问题,进行修复。
- 自动化任务: 执行脚本,完成定时任务。
最主流且强烈推荐的方式:SSH (Secure Shell)
SSH
是目前最安全、最标准、最广泛使用的远程登录和管理 Linux 服务器的协议,它通过加密技术保护您的登录凭证和所有传输的数据,有效防止窃听、连接劫持等攻击。
使用 SSH 客户端登录 (密码方式 – 基础但需谨慎)
- 所需工具:
- Linux/macOS 用户: 系统自带终端 (
Terminal
),直接使用ssh
命令。 - Windows 用户: 推荐使用免费且强大的
PuTTY
,或 Windows 10/11 内置的Windows Terminal
(也包含 OpenSSH 客户端,可通过ssh
命令访问)。
- Linux/macOS 用户: 系统自带终端 (
- 登录信息:
- 服务器 IP 地址或域名: 如
168.1.100
或your-server.com
。 - 端口号 (Port): 默认是
22
,如果管理员修改了默认端口,您需要知道确切的端口号。 - 用户名 (Username): 您在服务器上拥有登录权限的账户名,通常是
root
(超级管理员) 或您自己的普通用户名。 - 密码 (Password): 对应用户名的密码。
- 服务器 IP 地址或域名: 如
- 登录步骤 (命令行方式 – Linux/macOS/Windows Terminal):
- 打开您的终端 (Terminal)。
- 输入命令:
ssh username@server_ip_or_domain -p port_number
- 使用默认端口 22 登录用户
john
到服务器example.com
:ssh john@example.com
- 使用端口 2222 登录用户
root
到服务器168.1.100
:ssh root@192.168.1.100 -p 2222
- 使用默认端口 22 登录用户
- 首次连接时,系统会提示您确认服务器的指纹(一种身份验证机制),输入
yes
确认并继续。 - 输入该用户对应的密码(输入时不会显示字符,这是正常的)。
- 密码验证通过后,您将看到服务器的命令行提示符 (如
[john@server ~]$
或root@server:~#
),表示登录成功。
- 登录步骤 (PuTTY 方式 – Windows):
- 打开 PuTTY。
- 在
Host Name (or IP address)
栏输入服务器 IP 或域名。 - 在
Port
栏输入端口号(默认 22)。 Connection type
选择SSH
。- (可选) 可以输入一个名称保存此会话,方便下次使用。
- 点击
Open
。 - 首次连接会有安全警告,点击
Accept
或Yes
确认服务器密钥。 - 在终端窗口弹出的登录提示中,输入用户名,按回车。
- 输入密码(同样不显示),按回车。
- 登录成功,显示命令行提示符。
使用 SSH 客户端登录 (密钥对方式 – 更安全、更推荐)
密码登录虽然简单,但存在被暴力破解或窃听的风险。SSH 密钥对认证是更安全、更专业的登录方式,强烈建议所有用户,尤其是管理员采用。
- 原理: 生成一对密钥(公钥和私钥),公钥放在服务器上,私钥安全地保存在您的本地电脑上,登录时,客户端用私钥签名一个挑战信息,服务器用公钥验证签名,匹配则允许登录。
- 优势:
- 安全性极高: 私钥不通过网络传输,且通常比密码长得多、复杂得多,几乎无法暴力破解。
- 方便自动化: 无需手动输入密码,适合脚本和自动化任务。
- 可禁用密码登录: 配置服务器仅允许密钥登录,彻底消除密码被破解的风险(最佳实践)。
- 设置步骤:
- 在本地电脑生成密钥对 (Linux/macOS/Windows WSL/Windows Terminal):
- 打开终端。
- 输入命令:
ssh-keygen -t rsa -b 4096
(推荐使用 RSA 4096 位,或-t ed25519
如果服务器支持)。 - 按提示选择保存密钥的文件路径(默认
~/.ssh/id_rsa
和~/.ssh/id_rsa.pub
)和设置密钥密码(可选但强烈建议,为私钥再加一层保护)。 - 生成后,您会得到两个文件:
id_rsa
(私钥,必须严格保密!) 和id_rsa.pub
(公钥)。
- 在本地电脑生成密钥对 (PuTTY – Windows): 使用
PuTTYgen
工具生成密钥对,保存私钥 (.ppk
文件) 和公钥文本。 - 将公钥上传到服务器:
- 方法一 (推荐 –
ssh-copy-id
): 在本地终端运行:ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip_or_domain -p port_number
,输入一次密码后,公钥会自动添加到服务器用户家目录下的~/.ssh/authorized_keys
文件中。 - 方法二 (手动):
- 使用密码方式登录服务器。
- 确保
~/.ssh
目录存在:mkdir -p ~/.ssh
- 编辑(或创建)
~/.ssh/authorized_keys
文件:nano ~/.ssh/authorized_keys
(或用vim
)。 - 将本地
id_rsa.pub
文件(或 PuTTYgen 生成的公钥文本)的,复制粘贴到authorized_keys
文件中,一行一个公钥。 - 保存退出。
- 设置正确的权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
- 方法一 (推荐 –
- 使用密钥登录:
- 命令行: 登录命令与密码登录相同 (
ssh username@server...
),如果私钥路径是默认的且无密码,会自动使用密钥登录,如果私钥有密码或路径非默认,可能需要使用ssh-agent
管理私钥或通过-i /path/to/private_key
指定私钥。 - PuTTY: 在 PuTTY 配置界面的
Connection -> SSH -> Auth
部分,在Private key file for authentication
处浏览选择您的.ppk
私钥文件,然后像往常一样连接,如果私钥有密码,PuTTY 会提示您输入私钥密码(不是服务器用户密码)。
- 命令行: 登录命令与密码登录相同 (
- 在本地电脑生成密钥对 (Linux/macOS/Windows WSL/Windows Terminal):
其他登录方式 (了解即可,不推荐作为主要方式)
- Telnet: 极其不推荐! 古老的协议,所有通信(包括密码)都是明文传输,极易被窃听,除非在绝对安全隔离的测试环境,否则应避免使用,已被 SSH 完全取代。
- 物理控制台 / KVM over IP: 直接连接服务器的显示器和键盘,或通过专用的带外管理硬件(如 iDRAC, iLO, IPMI)远程访问服务器的物理控制台,通常在服务器完全无法通过网络访问(如系统崩溃、网络配置错误)时使用,需要硬件支持。
- 图形化远程桌面 (VNC, RDP): 如安装有
X Window System
和VNC Server
(如 TigerVNC, TightVNC) 或xrdp
(提供 RDP 协议支持),可以提供完整的桌面环境,但资源消耗大、安全性通常不如 SSH,且需要额外配置,仅推荐在确实需要图形界面的场景下使用,并务必配置强密码和加密。
安全最佳实践 (E-A-T 核心体现)
- 强制使用 SSH 密钥登录: 这是提升服务器安全性的最重要一步,在服务器上编辑
/etc/ssh/sshd_config
文件,设置PasswordAuthentication no
并重启 SSH 服务 (systemctl restart sshd
),确保您的密钥登录正常工作后再禁用密码! - 禁用 Root 直接登录: 同样在
sshd_config
中设置PermitRootLogin no
(或prohibit-password
/without-password
仅允许密钥登录),使用普通用户登录,然后通过sudo
提权执行管理任务。 - 使用强密码/强密钥密码: 如果必须使用密码登录或为私钥设置了密码,确保密码长度足够(12位以上)、复杂度高(大小写字母、数字、符号混合),避免使用常见词汇或个人信息。
- 修改默认 SSH 端口: 修改
sshd_config
中的Port
指令(如改为2222
),可以减少自动化扫描和暴力破解尝试,但请注意,这不是真正的安全措施(Security through obscurity),仍需配合密钥登录等。 - 使用 Fail2Ban: 安装配置 Fail2Ban 工具,自动监测并临时封锁多次登录失败的 IP 地址,有效抵御暴力破解。
- 保持系统和软件更新: 定期运行
sudo apt update && sudo apt upgrade
(Debian/Ubuntu) 或sudo yum update
(RHEL/CentOS) 来更新系统和 SSH 服务,修复已知漏洞。 - 限制可登录的用户和 IP: 在
sshd_config
中使用AllowUsers
或AllowGroups
指定允许登录的用户/组,使用AllowTCPForwarding
和PermitOpen
限制端口转发,结合防火墙(如ufw
或firewalld
)只允许特定 IP 或 IP 段访问 SSH 端口。 - 使用 SSH 协议版本 2: 确保
sshd_config
中Protocol
设置为2
(这是现代系统的默认值,禁用不安全的 SSHv1)。 - 保护您的私钥: 私钥等同于您的身份,将其保存在安全的位置(如
~/.ssh/
目录,权限为600
),不要共享给他人,如果使用客户端,确保电脑本身安全(安装杀毒软件、防火墙、及时打补丁),为私钥设置强密码是额外的安全保障。
常见问题与故障排除
- “Connection refused” (连接被拒绝): 服务器 SSH 服务未运行 (
systemctl status sshd
检查)、防火墙阻止了连接、服务器宕机或网络不通,检查服务状态、防火墙规则、服务器状态和网络连通性 (ping
/traceroute
)。 - “Permission denied (publickey, password)” (权限被拒绝):
- 密码错误:仔细检查用户名和密码。
- 密钥登录失败:检查本地私钥路径和权限是否正确;检查服务器上
authorized_keys
文件内容是否正确、权限是否为600
、所属用户是否正确;确认sshd_config
中PubkeyAuthentication
为yes
。 - 用户被禁止登录:检查
sshd_config
中的AllowUsers
/DenyUsers
设置。
- “Host key verification failed” (主机密钥验证失败): 服务器重装系统或 SSH 密钥变更导致。谨慎操作! 确认服务器变更是否合法后,在本地删除
~/.ssh/known_hosts
文件中对应服务器的旧记录,重新连接接受新密钥。 - 登录后反应慢: 可能由 DNS 反向解析引起,在
sshd_config
中设置UseDNS no
并重启服务。
掌握 SSH
协议,特别是密钥对认证方式,是安全、高效管理 Linux 服务器的基石,遵循本文介绍的安全最佳实践(禁用密码登录、禁用 Root 登录、使用 Fail2Ban、保持更新等)能极大提升服务器的防御能力,虽然存在其他登录方式,但在绝大多数生产环境和日常管理中,SSH 是唯一值得信赖和推荐的选择,请务必重视安全配置,保护您的服务器免受未授权访问。
引用说明 (References):
- OpenSSH 官方文档: 最权威的 SSH 协议和工具实现参考。 (隐含引用 – 所有 SSH 命令和配置均基于 OpenSSH 标准)
- Linux 基金会 / The Linux Documentation Project (TLDP): 提供广泛的 Linux 系统管理指南,包括 SSH 配置和安全。 (隐含引用 – 通用 Linux 管理实践)
- NIST (National Institute of Standards and Technology) 网络安全框架和指南: 提供密码管理、访问控制、系统保护等方面的安全最佳实践标准。 (隐含引用 – 安全最佳实践部分)
- OWASP (Open Web Application Security Project) 相关指南: 特别是关于认证、会话管理和服务器安全配置的建议。 (隐含引用 – 安全最佳实践部分)
- 主要 Linux 发行版官方文档 (Ubuntu, Debian, CentOS, RHEL, etc.): 提供特定发行版下 SSH 服务 (
sshd
) 的安装、配置和管理细节。 (隐含引用 – 系统命令和服务管理)
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9463.html