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 软件包以修复安全漏洞。
相关推荐
梅尔文.古6 分钟前
RaspberryPi-如何启用看门狗
linux·运维·服务器
木子欢儿7 分钟前
Ubuntu 24 安装 fcitx5 + rime + 雾凇配置
linux·运维·服务器·ubuntu
sg_knight9 分钟前
Nuxt 4 生产环境部署指南 (Node.js + Nginx)
运维·nginx·node.js·nuxt·ssr
Alice19 分钟前
linux scripts
java·linux·服务器
企微自动化24 分钟前
自动化报表生成:将 RPA 采集的群聊数据自动整理为可视化周报
运维·自动化·rpa
代码游侠27 分钟前
学习笔记——IPC(进程间通信)
linux·运维·网络·笔记·学习·算法
txzz888828 分钟前
CentOS-Stream-10 YUM配置文件
linux·运维·centos·yum配置文件
星融元asterfusion33 分钟前
办公网+自建云:基于TIP OpenWiFi 控制器的混合组网一站式融合管理方案
运维·混合组网·openwifi
Henry Zhu12335 分钟前
VPP中ACL源码详解第二篇:ACL数据平面处理
运维·服务器·网络·计算机网络