详解如何 SSH 远程登录自己的 Linux 服务器

8227 2026-08-01 07:54:50
买了云服务器,第一件事通常不是装网站、跑 Docker、配 Nginx,而是:先登录进去。 Linux 服务器大多数时候没有图形界面,我们不会像 Windows 远

买了云服务器,第一件事通常不是装网站、跑 Docker、配 Nginx,而是:先登录进去。

Linux 服务器大多数时候没有图形界面,我们不会像 Windows 远程桌面那样点来点去,而是通过 SSH 进入服务器的命令行。只要 SSH 连上了,后面的软件安装、网站部署、日志查看、文件编辑、权限配置,才真正开始。

这篇文章会从小白视角(主要是为我其他文章当作基建,避免频繁一遍一遍回答基础 SSH 问题),把 SSH 登录 Linux 服务器这件事完整讲一遍:

SSH 是什么,客户端和服务端分别在哪。

Windows、macOS、Linux 分别用什么工具连接。

如何用账号密码登录。

如何用密钥登录,为什么更推荐密钥登录。

如何使用 ssh-copy-id、authorized_keys 和云厂商控制台部署公钥。

如何写 ~/.ssh/config,把很长的 SSH 命令变短。

登录失败时怎么排查。

登录成功后,应该做哪些基础安全加固。

为什么用 SSH现在个人服务器、轻量应用服务器、VPS、树莓派、NAS、Linux 虚拟机,绝大多数都通过 SSH 远程管理。

SSH 的全称是 Secure Shell。简单理解,它是一个安全的远程命令行协议:本地电脑作为 SSH 客户端,连接远程 Linux 服务器上的 SSH 服务端,然后在加密通道里执行命令。

flowchart LR

A[本地电脑
SSH 客户端] -->|发起连接| B[公网或局域网]

B --> C[Linux 服务器
SSH 服务端]

C -->|身份验证通过| D[进入远程 Shell]

D --> E[执行命令
安装软件 / 查看日志 / 部署服务]

需要先纠正一个旧说法:SSH 不是“基于 SSL 的远程登录”。SSH 和 TLS/SSL 都会使用加密算法,但它们是不同的协议体系。我们日常使用的 ssh、sshd、ssh-keygen,通常来自 OpenSSH。

SSH 登录服务器,可以粗略分成两类:

登录方式

适合谁

优点

注意点

密码登录

第一次入门、临时登录

理解成本低,只需要用户名、服务器 IP、密码

容易被暴力破解,正式使用不建议长期开放

密钥登录

长期管理服务器

安全性更高,也更方便自动化

需要保管好私钥,公钥要放到服务器

我个人建议:新手可以先学密码登录,把流程跑通;真正长期使用时,尽快切换到密钥登录,并关闭密码登录。

有一定能力以后,可以上密码管理器来托管密钥,比如:

开源密码管理新选择:自建 Bitwarden(Vault)密码托管,跨平台同步 + MFA 多因素认证

视频教程和以前一样,我们觉得有用、有必要录个视频的内容,我们还是会花时间做个视频。不过考虑到文章是 21 年的,旧版视频仍可作为参考,具体命令和安全建议以本文更新后的内容为准:

感觉有用,可以给视频投个币么?( ´▽`):视频原链接:https://www.bilibili.com/video/BV1cL411w7RB

另外,接受打赏和捐赠嗷:爱发电:Mintimate

支持创作

制作教程不易,如果热心的小伙伴,想支持创作,可以加入我们的电圈(还可以解锁远程协助、好友位😃):

Mintimate的电圈:

https://ifdian.net/a/mintimate

Mintimate的微信赞赏码

👉 如果认为本教程对你很有帮助,可以请我喝咖啡 ☕

志同道合的小伙伴也是知音难觅。

开发者爱好群:

👉 如果你对云服务器、CDN、云数据库和Linux等云计算感兴趣,亦或者喜欢编程、设计、产品、运营等领域,欢迎加入我们的开发者爱好群,一起交流学习(目前可能就我一个人?🤔,毕竟才刚刚创建~)。

当然,也欢迎在B站、YouTube或微信公众号上关注我们:

Bilibili:

https://space.bilibili.com/355567627

YouTube:

https://www.youtube.com/@mintimate/featured

微信公众号:

MintimateBlog

更多:

Mintimate's Blog 关于页面

如果你也想使用腾讯云的轻量应用服务器 Linux 云服务器;那么你可以使用博客的专属链接购买体验:

本站专属腾讯云秒杀链接:https://curl.mintimate.cn/1tQTFul7G7N

准备信息开始之前,你至少要知道这几样东西:

服务器公网 IP,或者已经解析到服务器的域名。

登录用户名,比如 root、ubuntu、admin、debian、lighthouse。

登录方式,是密码登录,还是密钥登录。

SSH 端口,默认是 22。

云服务器安全组或防火墙是否放行了 SSH 端口。

不同系统和云厂商的默认用户可能不同:

系统或镜像

常见默认用户

Debian

root 或 admin,看云厂商镜像

Ubuntu

常见为 ubuntu,很多云镜像默认不允许 root 直接登录

CentOS / Rocky / AlmaLinux

常见为 root、centos、rocky、almalinux

Amazon Linux

常见为 ec2-user

腾讯云 Lighthouse 部分镜像

可能是 lighthouse

树莓派旧版系统

旧版常见 pi,新版通常需要初始化时自行创建用户

如果你不确定用户名,优先看云厂商控制台的“登录说明”“重置密码”“密钥对”“远程登录”页面。不要急着乱试,SSH 连续失败太多次,有些服务器会被安全软件临时封禁 IP。

客户端推荐现在 SSH 客户端已经很普及,不一定要下载第三方工具。

WindowsWindows 10 和 Windows 11 通常已经内置 OpenSSH 客户端,可以直接打开:

Windows Terminal

PowerShell

命令提示符

检查本机是否有 SSH:

1ssh -V

如果系统提示找不到 ssh,可以在 Windows 设置里安装“OpenSSH 客户端”,或者使用 Windows Terminal、PuTTY、Termius 等工具。

macOSmacOS 自带 Terminal 和 OpenSSH,打开“终端”即可:

1ssh -V

如果你喜欢更强的终端体验,也可以使用 iTerm2。

LinuxLinux 桌面发行版一般自带 SSH 客户端:

1ssh -V

如果没有,可以使用软件包管理器安装:

123456789# Debian / Ubuntusudo apt updatesudo apt install openssh-client# Fedorasudo dnf install openssh-clients# Arch Linuxsudo pacman -S openssh

手机和平板移动端也可以 SSH,但我更建议把它当作临时救急工具:

Android:Termius、JuiceSSH

iOS / iPadOS:Termius、ServerCat、Blink Shell

如果你要长期管理服务器,还是建议在电脑上配置好密钥、SSH Config 和备份。

SSH 登录流程从新手角度看,SSH 登录其实就是四步:

sequenceDiagram

actor U as 用户

participant C as 本地 SSH 客户端

participant S as 服务器 SSH 服务端

participant Shell as 远程 Shell

U->>C: 输入 ssh 用户名@服务器IP

C->>S: 连接服务器的 22 端口

S-->>C: 返回服务器主机指纹

U->>C: 首次连接输入 yes 信任指纹

C->>S: 提交密码或密钥签名

S-->>C: 验证身份

S->>Shell: 创建登录会话

Shell-->>U: 进入服务器命令行

第一次连接一台新服务器时,通常会看到类似提示:

1Are you sure you want to continue connecting (yes/no/[fingerprint])?

这是 SSH 在询问:你是否信任这台服务器的主机指纹。第一次连接自己的新服务器,确认 IP 没填错后,输入:

1yes

之后本机会把这台服务器的主机指纹记录到 known_hosts 文件里。下次再连同一台服务器,如果指纹突然变化,SSH 就会提醒你可能连错服务器,或者服务器被重装了。

密码登录密码登录最直观,格式是:

1ssh 用户名@服务器IP

比如服务器 IP 是 192.168.3.241,登录用户是 root:

1ssh root@192.168.3.241

如果服务器 SSH 端口不是默认的 22,比如改成了 2222:

1ssh -p 2222 root@192.168.3.241

注意:-p 是小写,表示 port。

云服务器重置密码如果你买的是云服务器,第一次登录前通常需要在控制台设置或重置密码。

云厂商控制台重置密码后,服务器可能会自动重启。等服务器状态恢复“运行中”以后,再尝试 SSH 登录。

登录时输入密码不会显示星号,也不会显示光标变化,这是正常的。你只需要盲输密码,然后回车。

服务器允许密码登录如果你确定密码正确,但 SSH 一直拒绝密码登录,可能是服务器禁用了密码登录。

SSH 服务端配置文件通常是:

1/etc/ssh/sshd_config

编辑它:

1sudo vim /etc/ssh/sshd_config

找到或添加:

1PasswordAuthentication yes

注意,OpenSSH 配置一般使用空格分隔,推荐写成 PasswordAuthentication yes,不要写成 PasswordAuthentication=yes。

改完后先检查配置语法:

1sudo sshd -t

如果没有输出,说明配置语法基本没问题。然后重启 SSH 服务:

12345# Debian / Ubuntu 常见服务名sudo systemctl restart ssh# CentOS / Rocky / AlmaLinux / Fedora 常见服务名sudo systemctl restart sshd

如果你不确定服务名,可以查看:

12systemctl status sshsystemctl status sshd

如果你正在通过 SSH 修改 SSH 配置,建议保留当前已登录的窗口不要关。另开一个新终端测试新连接,确认能登录后,再退出旧窗口。

否则配置写错、服务重启失败,可能会把自己锁在服务器外面。

Ubuntu 允许 root 登录很多 Ubuntu 云镜像默认不允许 root 直接 SSH 登录,而是让你使用 ubuntu 用户,再通过 sudo 提权:

12ssh ubuntu@服务器IPsudo -i

如果你确实要允许 root 远程登录,可以编辑:

1sudo vim /etc/ssh/sshd_config

设置:

1PermitRootLogin yes

然后检查并重启:

12sudo sshd -tsudo systemctl restart ssh

不过更推荐的方式是:不要开放 root 密码登录。可以使用普通用户登录,再用 sudo 执行管理员命令。

密钥登录长期使用服务器,更推荐密钥登录。

密钥登录不是把密码换成一个更长的密码,而是使用一对密钥:

私钥:放在你自己的电脑上,绝对不要发给别人。

公钥:放在服务器上,可以理解为“允许这把私钥登录”的登记信息。

登录时,本地 SSH 客户端会用私钥完成签名,服务器用公钥验证。私钥不会被发送到服务器。

flowchart TB

A[本地电脑生成密钥对] --> B[私钥保存在本地
id_ed25519]

A --> C[公钥复制到服务器
id_ed25519.pub]

C --> D[写入 ~/.ssh/authorized_keys]

B --> E[ssh -i 私钥 用户名@服务器IP]

D --> F[服务器验证签名]

E --> F

F --> G{验证通过?}

G -->|是| H[登录成功]

G -->|否| I[Permission denied]

生成密钥现在我更推荐使用 Ed25519 密钥:

1ssh-keygen -t ed25519 -C "your_email@example.com"

如果你的服务器系统非常旧,不支持 Ed25519,可以退回 RSA:

1ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

生成过程中会问几个问题:

123Enter file in which to save the keyEnter passphraseEnter same passphrase again

含义如下:

提示

建议

Enter file in which to save the key

密钥保存位置。默认是 ~/.ssh/id_ed25519,直接回车即可

Enter passphrase

私钥保护密码。个人电脑建议设置,自动化脚本可以留空

Enter same passphrase again

再输入一次私钥保护密码

生成后一般会有两个文件:

12~/.ssh/id_ed25519~/.ssh/id_ed25519.pub

其中:

id_ed25519 是私钥,不能泄露。

id_ed25519.pub 是公钥,可以放到服务器。

查看公钥内容:

1cat ~/.ssh/id_ed25519.pub

公钥通常长这样:

1ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... your_email@example.com

你要复制的是整行,从 ssh-ed25519 开始,到最后的备注结束。

方法一:使用 ssh-copy-id如果服务器当前还能用密码登录,最简单的方法是 ssh-copy-id:

1ssh-copy-id 用户名@服务器IP

比如:

1ssh-copy-id root@192.168.3.241

如果 SSH 端口不是 22:

1ssh-copy-id -p 2222 root@192.168.3.241

如果你要指定某个公钥文件:

1ssh-copy-id -i ~/.ssh/id_ed25519.pub root@192.168.3.241

它会自动把你的公钥追加到服务器对应用户的:

1~/.ssh/authorized_keys

然后测试登录:

1ssh root@192.168.3.241

如果不再要求输入服务器用户密码,就说明密钥登录成功了。

Windows 自带 OpenSSH 有时没有 ssh-copy-id,可以用下面的手动方法。

方法二:手动写入 authorized_keys先用密码登录服务器:

1ssh root@192.168.3.241

在服务器上创建 .ssh 目录,并设置权限:

12mkdir -p ~/.sshchmod 700 ~/.ssh

编辑 authorized_keys:

1vim ~/.ssh/authorized_keys

把你本地 id_ed25519.pub 的整行公钥粘贴进去,一行一个公钥。

保存后设置权限:

1chmod 600 ~/.ssh/authorized_keys

如果你是用 root 帮普通用户配置,还要确认文件属于目标用户:

1sudo chown -R 用户名:用户名 /home/用户名/.ssh

比如用户叫 demo:

1sudo chown -R demo:demo /home/demo/.ssh

然后在本地测试:

1ssh demo@服务器IP

方法三:云厂商控制台绑定密钥云服务器一般也支持在控制台绑定 SSH 密钥。大致流程是:

本地生成密钥对,复制公钥。

在云厂商控制台创建“SSH 密钥”或“密钥对”。

把公钥粘贴到控制台。

将密钥绑定到服务器实例。

使用本地私钥登录。

这种方法适合新建服务器时就配置密钥。不同云厂商的“绑定后是否需要重启服务器”不完全一样,以控制台提示为准。

指定私钥登录如果你使用的不是默认私钥名,就需要用 -i 指定私钥:

1ssh -i ~/.ssh/my_server_key root@192.168.3.241

如果端口也不是默认 22:

1ssh -i ~/.ssh/my_server_key -p 2222 root@192.168.3.241

私钥权限太宽时,OpenSSH 可能拒绝使用它。macOS 和 Linux 可以这样修复:

1chmod 600 ~/.ssh/my_server_key

写 SSH Config当服务器多了以后,每次都输入:

1ssh -i ~/.ssh/my_server_key -p 2222 root@192.168.3.241

确实很烦。可以把配置写到本机的:

1~/.ssh/config

示例:

123456Host myserver HostName 192.168.3.241 User root Port 2222 IdentityFile ~/.ssh/my_server_key IdentitiesOnly yes

以后登录只需要:

1ssh myserver

还可以直接复制文件:

1scp ./test.txt myserver:/root/

或者使用 VS Code Remote SSH 连接 myserver。

常用字段含义:

字段

含义

Host

本地别名,可以随便起

HostName

真实服务器 IP 或域名

User

登录用户名

Port

SSH 端口

IdentityFile

私钥路径

IdentitiesOnly yes

只使用这里指定的私钥,避免客户端乱试其他钥匙

创建普通用户如果你一直用 root 登录,操作确实方便,但也更危险。更推荐创建一个普通用户,通过 sudo 管理服务器。

以 Debian / Ubuntu 为例:

12sudo adduser mintsudo usermod -aG sudo mint

以 CentOS / Rocky / AlmaLinux 为例:

123sudo adduser mintsudo passwd mintsudo usermod -aG wheel mint

然后给这个用户配置 SSH 公钥:

12345sudo mkdir -p /home/mint/.sshsudo vim /home/mint/.ssh/authorized_keyssudo chmod 700 /home/mint/.sshsudo chmod 600 /home/mint/.ssh/authorized_keyssudo chown -R mint:mint /home/mint/.ssh

本地测试:

1ssh mint@服务器IP

登录后验证 sudo:

1sudo whoami

如果输出:

1root

说明这个普通用户可以通过 sudo 执行管理员命令。

关闭密码登录确认密钥登录和 sudo 都没问题以后,可以考虑关闭密码登录。

编辑:

1sudo vim /etc/ssh/sshd_config

推荐配置:

123PubkeyAuthentication yesPasswordAuthentication noPermitRootLogin prohibit-password

含义:

PubkeyAuthentication yes:允许密钥登录。

PasswordAuthentication no:禁止密码登录。

PermitRootLogin prohibit-password:root 不能用密码登录,但可以在配置了公钥时用密钥登录。

如果你想更严格,可以完全禁止 root 远程登录:

1PermitRootLogin no

改完后检查配置:

1sudo sshd -t

重启服务:

123sudo systemctl restart ssh# 或sudo systemctl restart sshd

然后开一个新终端测试:

1ssh mint@服务器IP

确认新连接能登录,再关闭旧窗口。

端口和安全组很多新手 SSH 连不上,其实不是用户名密码错,而是网络层没通。

SSH 默认端口是 TCP 22。你至少要确认三处:

flowchart LR

A[本地电脑] --> B[本地网络
运营商 / 路由器]

B --> C[云厂商安全组
放行 TCP 22]

C --> D[服务器防火墙
ufw / firewalld / iptables]

D --> E[sshd 服务
监听 22 端口]

云服务器安全组云服务器一般有“安全组”或“防火墙”功能。你需要放行:

123协议: TCP端口: 22来源: 你的公网 IP 或 0.0.0.0/0

如果只是临时测试,可以先放行 0.0.0.0/0。长期使用更建议只放行自己的公网 IP,或者使用云厂商的 Web SSH / 堡垒机 / VPN。

服务器防火墙Ubuntu 常见 ufw:

12sudo ufw statussudo ufw allow 22/tcp

CentOS / Rocky / AlmaLinux 常见 firewalld:

123sudo firewall-cmd --statesudo firewall-cmd --permanent --add-service=sshsudo firewall-cmd --reload

如果你改了 SSH 端口,比如 2222,也要放行新端口:

1sudo ufw allow 2222/tcp

或者:

12sudo firewall-cmd --permanent --add-port=2222/tcpsudo firewall-cmd --reload

查看 sshd 是否监听在服务器上执行:

1ss -tlnp | grep ssh

可能看到:

1LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234,fd=3))

说明 SSH 服务端正在监听 22 端口。

文件传输SSH 不只可以登录,还可以传文件。

scp把本地文件上传到服务器:

1scp ./index.html root@服务器IP:/var/www/html/

从服务器下载文件到本地:

1scp root@服务器IP:/var/log/nginx/access.log ./

指定端口:

1scp -P 2222 ./index.html root@服务器IP:/var/www/html/

注意:ssh 用小写 -p 指定端口,scp 用大写 -P。

sftp进入交互式文件传输:

1sftp root@服务器IP

常用命令:

123456put 本地文件get 远程文件lspwdcdexit

如果你已经写了 SSH Config:

1sftp myserver

常见问题排查SSH 报错信息通常很有价值。下面这些是新手最容易遇到的。

Connection timed out典型提示:

1ssh: connect to host 服务器IP port 22: Operation timed out

常见原因:

服务器 IP 写错。

服务器没开机。

云安全组没放行 22 端口。

服务器防火墙没放行 22 端口。

SSH 服务没启动。

你的网络到服务器线路不通。

排查顺序:

12ping 服务器IPssh -vvv 用户名@服务器IP

然后去云厂商控制台检查安全组,再用 Web SSH 登录服务器检查:

123sudo systemctl status sshsudo systemctl status sshdss -tlnp | grep ssh

Connection refused典型提示:

1ssh: connect to host 服务器IP port 22: Connection refused

这通常说明网络能到服务器,但目标端口没有服务在监听,或者被服务器主动拒绝。

检查:

1234sudo systemctl status sshsudo systemctl status sshdsudo sshd -tss -tlnp | grep ssh

如果配置写错,先修复 /etc/ssh/sshd_config,再重启服务。

Permission denied publickey典型提示:

1Permission denied (publickey).

意思是:服务器要求密钥登录,但你本地提供的私钥没有通过验证。

常见原因:

用户名错了。

服务器上没有放你的公钥。

公钥放错用户了,比如放到 /root/.ssh/authorized_keys,却用 ubuntu 登录。

本地没有使用正确私钥。

服务器上的 .ssh 或 authorized_keys 权限不对。

sshd_config 禁用了公钥登录。

本地指定私钥测试:

1ssh -i ~/.ssh/id_ed25519 用户名@服务器IP

本地打开详细日志:

1ssh -vvv -i ~/.ssh/id_ed25519 用户名@服务器IP

服务器上检查权限:

123chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keysls -la ~/.ssh

如果是普通用户:

1sudo chown -R 用户名:用户名 /home/用户名/.ssh

Permission denied password典型提示:

1Permission denied, please try again.

常见原因:

密码错了。

用户名错了。

服务器禁用了密码登录。

root 被禁止远程登录。

云厂商没有给这个镜像开启密码登录。

检查 /etc/ssh/sshd_config:

12PasswordAuthentication yesPermitRootLogin yes

更推荐做法是:使用控制台或 Web SSH 登录服务器,把公钥配置好,然后改用密钥登录。

REMOTE HOST IDENTIFICATION HAS CHANGED典型提示:

123@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

常见原因:

服务器重装系统了。

云服务器 IP 绑定到了另一台机器。

你连接到了错误的服务器。

存在中间人攻击风险。

如果你确认是自己重装了服务器,可以删除本地旧指纹:

1ssh-keygen -R 服务器IP

如果你使用的是域名:

1ssh-keygen -R example.com

如果有自定义端口:

1ssh-keygen -R "[服务器IP]:2222"

然后重新连接,确认新指纹。

WARNING: UNPROTECTED PRIVATE KEY FILE典型提示:

12WARNING: UNPROTECTED PRIVATE KEY FILE!Permissions 0644 for 'id_ed25519' are too open.

意思是私钥权限太宽,OpenSSH 拒绝使用。

修复:

1chmod 600 ~/.ssh/id_ed25519

如果是整个 .ssh 目录权限有问题:

12chmod 700 ~/.sshchmod 600 ~/.ssh/*

注意:如果 .ssh 里有 .pub 公钥文件,公钥权限宽一点通常没关系,但统一收紧也可以。

Too many authentication failures典型提示:

1Too many authentication failures

本地 SSH Agent 里可能加载了太多私钥,服务器试了几把都失败,就断开了。

指定私钥并限制只使用它:

1ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 用户名@服务器IP

或者写入 ~/.ssh/config:

12345Host myserver HostName 服务器IP User root IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes

no matching host key type found典型提示:

1no matching host key type found. Their offer: ssh-rsa

这常见于很旧的服务器。较新的 OpenSSH 默认不再接受一些旧的 ssh-rsa 算法组合。

更推荐的修复方式是升级服务器系统和 OpenSSH,重新生成现代主机密钥。如果只是临时连接旧设备,可以临时加参数:

1ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa 用户名@服务器IP

不建议长期这样使用。旧算法兼容只是救急方案,不是安全方案。

新手安全清单SSH 能登录以后,建议至少做这些事:

flowchart TD

A[首次登录服务器] --> B[更新系统软件包]

B --> C[创建普通用户]

C --> D[给普通用户配置 sudo]

D --> E[配置 SSH 密钥登录]

E --> F[确认新终端可用密钥登录]

F --> G[关闭密码登录]

G --> H[限制安全组来源 IP]

H --> I[保留云厂商控制台救援入口]

更新系统Debian / Ubuntu:

12sudo apt updatesudo apt upgrade -y

CentOS / Rocky / AlmaLinux:

1sudo dnf update -y

旧 CentOS 可能使用:

1sudo yum update -y

不要把私钥发给别人再强调一次:

.pub 结尾的是公钥,可以放服务器。

没有 .pub 的是私钥,只能放自己电脑。

如果私钥泄露,应该立刻:

删除服务器 authorized_keys 里对应的公钥。

本地重新生成新密钥。

把新公钥部署到服务器。

保留救援入口在你还不熟悉 SSH 配置时,建议保留至少一种救援方式:

云厂商 Web SSH。

云厂商 VNC 控制台。

快照或备份。

还没关闭的旧 SSH 会话。

SSH 配置改错并不可怕,可怕的是没有任何入口能改回来。

常用命令速查最后把常用命令整理一下。

登录123ssh root@服务器IPssh -p 2222 root@服务器IPssh -i ~/.ssh/id_ed25519 root@服务器IP

生成密钥12ssh-keygen -t ed25519 -C "your_email@example.com"ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

复制公钥12ssh-copy-id root@服务器IPssh-copy-id -i ~/.ssh/id_ed25519.pub root@服务器IP

服务器权限123mkdir -p ~/.sshchmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys

检查 SSH 服务1234sudo sshd -tsudo systemctl status sshsudo systemctl status sshdss -tlnp | grep ssh

修复 known_hosts12ssh-keygen -R 服务器IPssh-keygen -R "[服务器IP]:2222"

END到这里,你已经掌握了 SSH 登录 Linux 服务器的核心方法。

如果你是第一次接触 Linux 服务器,建议先按这个顺序练习:

用密码登录一次服务器。

生成 SSH 密钥。

把公钥部署到服务器。

用密钥登录。

写 ~/.ssh/config。

创建普通用户并配置 sudo。

确认密钥登录没问题后,再关闭密码登录。

SSH 是服务器世界的入口。刚开始看起来只是一个黑色终端,但熟悉以后,你会发现它非常稳定、清晰,也很适合自动化。后续搭建网站、部署 Docker、配置 Nginx、查看日志,基本都会从这一步开始。

如果你还需要 Linux 图形桌面,可以参考:

零基础给 Linux 服务器安装 VNC 远程桌面环境

最后,如果你觉得本篇教程对你有帮助,欢迎加入我们的开发者交流群: 812198734 ,希望开发者可以共同探索技术。

若对文章很感兴趣,可以B站关注我ヾ(≧▽≦*)o

点此跳转“爱发电”页面(○` 3′○)

陌陌怎么改自己性别 陌陌里的性别可以改嚒?怎么改?|含“窍”的成语(20个)