返回博客列表一条命令开启远程 Linux 的 SSH:脚本下载地址、执行命令与用途说明
techLive content

一条命令开启远程 Linux 的 SSH:脚本下载地址、执行命令与用途说明

这篇文章只保留最关键内容:SSH 初始化脚本、SSH 检测脚本的下载地址、执行命令、常见错误提示,以及这两个脚本分别能做什么。

2026年5月20日SSH · Linux · 远程执行 · Shell脚本 · 服务器运维 · OpenSSH · 教程
一条命令开启远程 Linux 的 SSH:脚本下载地址、执行命令与用途说明

一句话说明

如果你已经能进入一台远程 Linux 机器的终端,但它还没开好 SSH,或者还没把公钥登录配置完整,那么这篇就只保留最关键的内容:

  • 初始化脚本下载地址
  • 检测脚本下载地址
  • 一条命令执行方式
  • 这两个脚本分别是干什么的

SSH Remote Script


初始化脚本下载地址

用于直接启用 SSH、写入公钥、修权限的脚本:


检测脚本下载地址

用于自动检查 SSH 服务、22 端口、authorized_keys 路径和常见问题的脚本:


一条命令执行:初始化脚本

如果你想直接按默认用户执行:

TEXT
curl -fsSL https://blog.pophcc.com/api/raw/obsidian-assets/scripts/enable-ssh-and-install-key.sh -o /tmp/enable-ssh-and-install-key.sh
sudo bash /tmp/enable-ssh-and-install-key.sh

如果你想明确指定给 root 用户写入公钥:

TEXT
curl -fsSL https://blog.pophcc.com/api/raw/obsidian-assets/scripts/enable-ssh-and-install-key.sh -o /tmp/enable-ssh-and-install-key.sh
sudo bash /tmp/enable-ssh-and-install-key.sh root

如果你是给当前普通用户开 SSH 公钥登录,也可以这样:

TEXT
curl -fsSL https://blog.pophcc.com/api/raw/obsidian-assets/scripts/enable-ssh-and-install-key.sh -o /tmp/enable-ssh-and-install-key.sh
sudo bash /tmp/enable-ssh-and-install-key.sh your-user

一条命令执行:检测脚本

默认检测当前用户和 22 端口:

TEXT
curl -fsSL https://blog.pophcc.com/api/raw/obsidian-assets/scripts/ssh-doctor.sh -o /tmp/ssh-doctor.sh
bash /tmp/ssh-doctor.sh

如果你想指定要检查的用户,例如 root

TEXT
curl -fsSL https://blog.pophcc.com/api/raw/obsidian-assets/scripts/ssh-doctor.sh -o /tmp/ssh-doctor.sh
bash /tmp/ssh-doctor.sh root

如果你想检查别的 SSH 端口,例如 2222

TEXT
curl -fsSL https://blog.pophcc.com/api/raw/obsidian-assets/scripts/ssh-doctor.sh -o /tmp/ssh-doctor.sh
SSH_PORT=2222 bash /tmp/ssh-doctor.sh root

初始化脚本是干什么的

这个脚本会顺手把 SSH 启用链路里最常见的几步都做掉:

  • 检查机器上是否已经安装 OpenSSH Server
  • 如果没装,就尝试自动安装
  • 自动识别服务名是 ssh 还是 sshd
  • 启动 SSH 服务
  • 设置 SSH 开机自启
  • 创建目标用户的 ~/.ssh 目录
  • 创建或更新 authorized_keys
  • 写入预设公钥
  • 修复 .sshauthorized_keys 的权限
  • 如果系统带 ufwfirewalld,会顺手尝试放通 22 端口

说白了,它的用途就是:

把一台刚接手、刚装完、或者 SSH 还没配好的 Linux 机器,快速整理到“可以用 SSH 公钥登录”的状态。


检测脚本是干什么的

这个脚本不会直接修改你的系统,它主要负责“查问题出在哪里”。

它会自动检查:

  • sshd 二进制是否存在
  • openssh-server 是否已安装
  • 服务名到底是 ssh 还是 sshd
  • SSH 服务是否正在运行
  • SSH 服务是否设置为开机自启
  • 22 端口是否真的在监听
  • 本机是否启用了 ufwfirewalld
  • 防火墙是否明显放通了 SSH
  • sshd_config 是否存在
  • PermitRootLogin
  • PubkeyAuthentication
  • PasswordAuthentication
  • AuthorizedKeysFile
  • 目标用户的 ~/.ssh 是否存在
  • authorized_keys 路径是否正确
  • .sshauthorized_keys 权限是否异常
  • 机器上有没有 curl / wget

最后它会给出:

  • PASS
  • WARN
  • FAIL

并附上比较像人话的总结,方便你判断问题是在:

  • 没装 OpenSSH
  • 服务没启动
  • 端口没监听
  • 防火墙没放开
  • 公钥路径不对
  • 权限不对

什么时候该用哪个脚本

场景 1:你想直接把 SSH 开起来

用初始化脚本:

TEXT
enable-ssh-and-install-key.sh

场景 2:你已经装过 SSH,但 22 端口还是不通

先用检测脚本:

TEXT
ssh-doctor.sh

场景 3:你不确定问题在服务、端口、权限还是配置

还是先用检测脚本。

因为这种时候最怕的不是“不会改”,而是:

还没看清问题,就先一顿乱改。


常见错误提示与处理办法

报错 1:找不到命令 “curl”

这表示:

  • 目标机器没有安装 curl
  • 所以后面的脚本文件不会被下载到 /tmp

接着再执行:

TEXT
sudo bash /tmp/enable-ssh-and-install-key.sh

就会继续看到:

TEXT
没有那个文件或目录

因为脚本文件实际上根本没下载下来。

处理方法

如果是 Ubuntu / Debian:

TEXT
sudo apt update
sudo apt install -y curl

装完后再重新执行:

TEXT
curl -fsSL https://blog.pophcc.com/api/raw/obsidian-assets/scripts/enable-ssh-and-install-key.sh -o /tmp/enable-ssh-and-install-key.sh
sudo bash /tmp/enable-ssh-and-install-key.sh

如果机器没有 curl,但有 wget,也可以直接改成:

TEXT
wget -O /tmp/enable-ssh-and-install-key.sh https://blog.pophcc.com/api/raw/obsidian-assets/scripts/enable-ssh-and-install-key.sh
sudo bash /tmp/enable-ssh-and-install-key.sh

同理,检测脚本也可以这样下载:

TEXT
wget -O /tmp/ssh-doctor.sh https://blog.pophcc.com/api/raw/obsidian-assets/scripts/ssh-doctor.sh
bash /tmp/ssh-doctor.sh

最后

以后如果我再更新远程初始化脚本或 SSH 检测脚本,只要博客上的这两个链接不变,你就可以继续直接下载使用。

这也是我把它们挂到博客上的原因:

需要时,直接 curlwget,不用再翻聊天记录。

读者反馈

你希望这篇文章补充什么?

可以留下你想看的功能、改进建议或后续教程方向。我会定期整理。

位读者看过
条建议
0/500

最新建议

还没有建议,你可以抢个沙发。

为了去重统计,只保存 IP、浏览器信息和本机指纹的哈希,不保存明文 IP。