详解如何 SSH 远程登录自己的 Linux 服务器
买了云服务器,第一件事通常不是装网站、跑 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个)