Linux 远程登录是系统管理和服务器运维中的基本操作,通过命令行工具可以高效地管理远程主机,常用的远程登录命令包括 SSH、Telnet、Rlogin 等,SSH(Secure Shell)因加密传输和安全性成为主流选择,以下将详细介绍这些命令的使用方法、配置选项及注意事项。

SSH 远程登录命令
SSH 是目前最安全的远程登录协议,默认通过 22 端口通信,支持加密认证和数据传输,基本语法为 ssh [用户名]@[主机地址],ssh root@192.168.1.100,首次登录时,系统会提示保存远程主机的密钥指纹(需确认是否可信),输入 yes 后继续,随后输入目标用户的密码即可登录。
常用参数
-p 端口号:指定非默认端口,如ssh -p 2222 user@192.168.1.100。-i 密钥文件:使用密钥对认证,避免输入密码,如ssh -i ~/.ssh/id_rsa user@host。-v:详细模式,显示调试信息,用于排查连接问题。-N:不执行远程命令,仅用于端口转发。-L 本地端口:目标主机:目标端口:本地端口转发,将本地端口流量通过 SSH 隧道转发到远程主机。-R 远程端口:本地主机:本地端口:远程端口转发,将远程端口的请求转发到本地服务。
密钥对认证
为提升安全性,建议使用 SSH 密钥对替代密码认证,通过 ssh-keygen 命令生成密钥(默认存放在 ~/.ssh/ 目录),再将公钥(id_rsa.pub)复制到远程主机的 ~/.ssh/authorized_keys 文件中,可使用 ssh-copy-id user@host 自动完成公钥传输,之后即可免密登录。
SSH 配置文件
在 ~/.ssh/config 文件中可配置主机别名,简化登录命令。
Host server1
HostName 192.168.1.100
User admin
Port 2222
IdentityFile ~/.ssh/server1_key
之后通过 ssh server1 即可快速连接。

其他远程登录命令
Telnet
Telnet 是早期的远程登录工具,通信过程未加密,存在安全风险,现已较少使用,基本命令为 telnet [主机地址] [端口号],如 telnet 192.168.1.100 23,仅建议在调试网络服务时临时使用。
Rlogin
Rlogin(Remote Login)是 Unix 系统的远程登录工具,依赖 .rhosts 文件进行认证,安全性较低,已被 SSH 替代,命令格式为 rlogin [用户名]@[主机地址]。
远程登录后的常用操作
登录远程主机后,可通过命令行执行系统管理任务,
- 文件传输:
scp(通过 SSH 传输文件)、rsync(增量同步)。 - 进程管理:
ps、top、kill。 - 网络诊断:
ping、netstat、ss。 - 日志查看:
tail -f /var/log/syslog。
安全注意事项
- 禁用 root 直接登录:修改 SSH 配置文件
/etc/ssh/sshd_config,设置PermitRootLogin no,并重启 SSH 服务。 - 更改默认端口:将
Port 22修改为其他高位端口(如 2222),减少自动化攻击风险。 - 使用防火墙限制访问:通过
iptables或firewalld仅允许特定 IP 访问 SSH 端口。 - 定期更新 SSH 服务:保持
openssh或dropbear等软件包为最新版本。
远程登录命令对比
| 命令 | 加密 | 端口 | 认证方式 | 安全性 | 适用场景 |
|---|---|---|---|---|---|
| SSH | 是 | 22 | 密码/密钥 | 高 | 生产服务器、日常运维 |
| Telnet | 否 | 23 | 密码 | 低 | 调试、内网临时访问 |
| Rlogin | 否 | 513 | .rhosts | 中 | 旧版 Unix 系统兼容 |
相关问答FAQs
Q1: SSH 连接失败提示 "Permission denied (publickey,password)" 如何解决?
A1: 该错误通常由认证问题引起,首先检查远程主机的 ~/.ssh/authorized_keys 文件权限是否为 600,所属用户是否正确;其次确认本地私钥文件权限是否为 600;最后验证公钥是否正确添加到远程主机,或尝试使用 -v 参数查看详细错误信息。

Q2: 如何通过 SSH 实现文件传输?
A2: 可使用 scp 命令传输文件,
- 上传本地文件到远程:
scp /path/to/local.txt user@remote:/path/to/remote/ - 下载远程文件到本地:
scp user@remote:/path/to/remote.txt /path/to/local/
若需批量传输或增量同步,可使用rsync,如rsync -avz /local/ user@remote:/remote/。
