每天一个 Linux 知识:安全远程登录的核心工具 SSH

B站影视 韩国电影 2025-11-16 09:44 4

摘要:SSH 是一种网络协议,用于在不安全的网络中安全地远程登录到另一台计算机并执行命令。它默认使用TCP 22 端口,支持加密传输、密钥认证、端口转发等多种功能。Linux 系统通常使用 OpenSSH 作为其实现,包含客户端(ssh)和服务端(sshd)两部分。

SSH 是一种网络协议,用于在不安全的网络中安全地远程登录到另一台计算机并执行命令。它默认使用 TCP 22 端口,支持加密传输、密钥认证、端口转发等多种功能。Linux 系统通常使用 OpenSSH 作为其实现,包含客户端(ssh)和服务端(sshd)两部分。

当你在本地终端输入 ssh user@host 时,实际上是通过 SSH 客户端与远程主机上的 SSH 服务建立加密连接,从而获得一个安全的交互式 shell。

SSH 最常用的命令格式如下:

ssh [选项] [用户名@]主机地址

例如,以用户 alice 身份登录 IP 为 192.168.1.100 的服务器:

ssh alice@192.168.1.100

首次连接时,系统会提示确认远程主机的指纹(fingerprint),这是为了防止“中间人攻击”。输入 yes 后,该主机的公钥会被保存在本地 ~/.ssh/known_hosts 文件中,下次连接将自动验证。

若未指定用户名,SSH 会使用当前本地用户名。你也可以显式指定端口(当 SSH 服务运行在非默认 22 端口时):

ssh -p 2222 user@example.com

成功登录后,你将进入远程主机的命令行环境,可像操作本地终端一样执行命令。输入 exit 或按 Ctrl+D 即可断开连接。

虽然密码登录简单直观,但存在被暴力破解的风险。SSH 支持更安全的 公钥认证 方式。其原理是:用户生成一对密钥(公钥 + 私钥),将公钥上传至服务器,私钥保留在本地。登录时,服务器用公钥验证用户是否持有对应的私钥,无需传输密码。

生成密钥对的命令为:

(推荐使用 ed25519 算法,比传统的 RSA 更安全高效)

生成后,公钥文件位于 ~/.ssh/id_ed25519.pub,可通过以下命令一键复制到远程服务器:

ssh-copy-id user@host

此后登录将无需输入密码(除非设置了私钥密码)。这不仅提升了安全性,也极大方便了自动化脚本和频繁登录场景。

-i identity_file:指定私钥文件路径,适用于多密钥管理。-L [本地端口]:目标主机:目标端口:本地端口转发,用于安全访问内网服务。-X 或 -Y:启用 X11 转发,可在本地显示远程图形界面程序(需安装 X Server)。-t:强制分配伪终端,适用于执行需要交互的远程命令。

例如,通过 SSH 安全地访问远程 MySQL(假设其监听 3306 端口):

ssh -L 3307:localhost:3306 user@remote-server

之后在本地连接 127.0.0.1:3307,流量将经 SSH 隧道加密转发至远程数据库。

来源:wljslmz一点号

相关推荐