Linux远程登录

一、主要远程登录方式概览

方式 全称 简介 适用场景
SSH Secure Shell 最常用、最安全的加密协议,通过命令行登录。 绝大多数情况下的首选,用于服务器管理、文件传输等。
Telnet Telecommunication Network 古老的明文传输协议,非常不安全 仅用于测试或内部封闭网络,生产环境严禁使用。
VNC Virtual Network Computing 图形化界面远程桌面。 需要操作图形化界面(GUI)时。
RDP Remote Desktop Protocol 微软开发的图形化协议,Linux 需安装服务端。 从 Windows 系统远程连接 Linux 桌面(需GUI)。

核心结论:对于绝大多数命令行操作,请始终使用 SSH。


二、SSH - 最核心的远程登录方式

1. 基础用法

命令格式:

复制代码
ssh [选项] [用户名]@[主机地址] -p [端口号]

示例:

  • 使用默认端口 22 登录:

    复制代码
    ssh root@192.168.1.100
  • 使用自定义端口(如 2222)登录:

    复制代码
    ssh root@192.168.1.100 -p 2222
  • 使用当前本地用户名登录远程机(假设远程也有同名用户):

    复制代码
    ssh 192.168.1.100

首次连接时 ,会看到如下提示,输入 yes 即可将远程主机的指纹存入本地的 ~/.ssh/known_hosts 文件。

复制代码
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
2. 服务端配置(目标 Linux 机器)

通常,SSH 服务端(sshd)默认已安装。如需检查或配置:

  1. 安装 SSH 服务端(Debian/Ubuntu):

    复制代码
    sudo apt update && sudo apt install openssh-server

    (CentOS/RHEL/Fedora):

    复制代码
    sudo yum install openssh-server  # 或 sudo dnf install openssh-server
  2. 启动并设置开机自启

    复制代码
    sudo systemctl enable ssh   # Ubuntu/Debian 服务名可能是 ssh 或 sshd
    sudo systemctl start ssh
    
    sudo systemctl enable sshd  # CentOS/RHEL/Fedora
    sudo systemctl start sshd
  3. 重要配置文件/etc/ssh/sshd_config

    修改后需重启服务 sudo systemctl restart sshd

    • 更改默认端口 (增强安全): Port 2222
    • 禁止 root 用户直接登录PermitRootLogin no
    • 仅允许特定用户登录AllowUsers username1 username2
    • 禁用密码登录,仅用密钥PasswordAuthentication no
3. 客户端配置(您的机器)

A. 使用密码认证

  • 如上文"基础用法"所示,每次输入密码即可。

B. 使用密钥对认证(推荐,更安全、更方便)

  1. 在客户端生成密钥对(如果还没有):

    复制代码
    ssh-keygen -t ed25519 -C "your_email@example.com"
    # 或使用 RSA: ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

    按提示选择保存路径(默认 ~/.ssh/id_ed25519)和设置密钥密码(可为空)。

  2. 将公钥上传到服务器

    复制代码
    ssh-copy-id -i ~/.ssh/id_ed25519.pub username@192.168.1.100 -p 22

    如果 ssh-copy-id 不可用,可以手动将公钥内容追加到服务器的 ~/.ssh/authorized_keys 文件中。

  3. 现在登录将无需输入用户密码(如果设置了密钥密码,只需输入一次)。


三、其他登录方式简介

1. Telnet(了解即可,切勿在生产环境使用)
  • 服务端安装

    复制代码
    # Ubuntu/Debian
    sudo apt install telnetd
    # CentOS/RHEL
    sudo yum install telnet-server
  • 客户端连接

    复制代码
    telnet 192.168.1.100

    警告:所有通信(包括密码)都是明文的,极易被窃听。

2. VNC(图形化界面)
  • 服务端 : 需安装 vino (GNOME) 或 x11vnc 等软件。
  • 客户端: 使用 RealVNC, TigerVNC, TightVNC 等客户端软件连接。
  • 通常配置较复杂,需要设置显示号和密码。
3. 使用现代化工具(推荐用于管理多台服务器)
  • MobaXterm (Windows): 集成了 SSH, X11, 文件传输等功能。
  • Termius (跨平台): 界面美观,支持团队协作。
  • Finalshell (国产): 功能强大,带资源监控面板。

四、快速开始检查清单

假设您要登录到 IP 为 192.168.1.100 的 Linux 服务器,用户名为 admin

  1. 网络连通性 : 确保你的电脑能 ping 通目标服务器。

    复制代码
    ping 192.168.1.100
  2. 服务端检查: 确保目标服务器的 SSH 服务正在运行。

    复制代码
    # 在目标服务器上执行
    sudo systemctl status ssh
  3. 客户端连接

    复制代码
    ssh admin@192.168.1.100

    输入用户 admin 的密码。

  4. (可选)配置密钥登录

    • 在您的电脑上生成密钥对。
    • 使用 ssh-copy-id 上传公钥。
    • 再次登录体验无密码连接。

五、安全建议

  1. 禁用 root 登录 : 创建普通用户,用 sudo 提权。
  2. 使用密钥替代密码: 密钥比密码更难破解。
  3. 修改默认 SSH 端口: 减少自动化攻击脚本的骚扰。
  4. ** Fail2ban**: 安装 fail2ban 工具,自动封锁多次尝试失败 IP。
  5. 保持更新: 及时更新 SSH 软件包以修复安全漏洞。
相关推荐
A小辣椒3 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒6 小时前
TShark:基础知识
linux
AlfredZhao9 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334661 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式