Skip to content

启用 SSH 服务

功能概述:Notebook 实例启动后,如果当前镜像未预装或未启动 SSH 服务,您可以在容器内安装 sshd 服务并启动,通过 SSH 远程连接容器实例。

温馨提示:本文命令需要在 Notebook 容器终端中执行,并要求当前用户具有 root 权限或能够使用 sudo。容器重启后,手动启动的服务可能会失效,请根据平台提供的启动方式重新执行启动命令。

一、确认当前镜像是否支持 SSH

1. 检查 sshd 是否已安装

在 Notebook 的终端中执行:

shell
command -v sshd

如果能够返回 sshd 的路径,说明服务已经安装;如果没有返回内容,请按照本文第二节安装 SSH 服务。

2. 检查 SSH 服务是否正在运行

shell
ps -ef | grep sshd | grep -v grep

如果能够看到 sshd 进程,说明 SSH 服务已经启动;如果没有进程,请按照本文第三节启动服务。

二、在容器中安装 sshd 服务

请根据当前镜像使用的 Linux 发行版选择对应命令。

1. Debian/Ubuntu 系列镜像

(1)更新软件源:

shell
apt-get update

(2)安装 OpenSSH 服务端:

shell
apt-get install -y openssh-server

2. CentOS/RHEL 系列镜像

(1)使用 yum 安装:

shell
yum install -y openssh-server

如果当前镜像使用 dnf,请执行:

shell
dnf install -y openssh-server

3. 创建运行目录

部分精简镜像不会自动创建 SSH 服务运行目录,安装完成后可以执行:

shell
mkdir -p /run/sshd

三、启动 SSH 服务

1. 直接启动 sshd

推荐在容器中直接启动服务:

shell
/usr/sbin/sshd

如果系统能够通过命令搜索到 sshd,也可以执行:

shell
sshd

2. 使用服务管理命令启动

在支持 service 的镜像中,可以执行:

shell
service ssh start

部分 CentOS/RHEL 系列镜像使用以下服务名:

shell
service sshd start

注意:Notebook 容器通常不是完整的虚拟机,可能没有运行 systemd。如果执行 systemctl start sshsystemctl start sshd 提示无法连接到 systemd,请改用 /usr/sbin/sshdservice 命令启动。

四、验证 SSH 服务是否启动成功

1. 检查进程

shell
ps -ef | grep sshd | grep -v grep

2. 检查监听端口

SSH 服务默认监听容器内的 22 端口,可以执行:

shell
ss -lntp | grep ':22'

如果镜像中没有 ss 命令,可以尝试:

shell
netstat -lntp | grep ':22'

看到 0.0.0.0:22:::22 等监听信息,说明 SSH 服务已正常监听。

五、检测 SSH 功能

平台提供“检测SSH”功能,用于检测当前 Notebook 容器内的 SSH 服务是否已安装并正常运行。不同页面状态下,入口名称可能显示为“了解如何启用”或“安装SSH”,具体操作流程如下。

1. 当前镜像不支持 SSH

当实例列表页提示“当前镜像不支持 SSH”时:

(1)点击“了解如何启用”或“安装SSH”,进入本帮助文档。

(2)参考本文第二节和第三节,在 Notebook 容器中安装并启动 sshd 服务。

(3)完成安装和启动后,返回 Notebook 实例列表页。

2. 检测 SSH 服务

返回实例列表页后,在对应实例的操作区域点击“检测SSH”。

  • 如果检测成功,说明容器内的 SSH 服务已安装并正常运行,即可使用 SSH 登录或 Shell 功能。
  • 如果检测失败,请确认已按照本文完成 sshd 安装和启动,并确认容器内的 22 端口处于监听状态,然后再次点击“检测SSH”。

注意:页面中的“了解如何启用”和“安装SSH”均用于引导用户进入 SSH 启用帮助;SSH 服务需要用户按照文档在容器内自行安装和启动。容器重启后服务状态可能发生变化,如无法使用 SSH 或 Shell,请重新启动服务并执行“检测SSH”。

六、常见问题

1. 执行安装命令提示没有软件源

请先检查容器网络和软件源配置。Debian/Ubuntu 系列执行:

shell
apt-get update

CentOS/RHEL 系列执行:

shell
yum makecache

如果容器无法访问软件源,请联系平台管理员或使用已预装 OpenSSH 的自定义镜像。

2. 执行 sshd 提示缺少主机密钥

可以重新生成 SSH 主机密钥:

shell
ssh-keygen -A

然后再次启动服务:

shell
/usr/sbin/sshd

3. SSH 服务启动后仍然无法连接

请依次确认:

  • 容器内存在 sshd 进程;
  • 容器内 22 端口处于监听状态;
  • 平台已配置容器端口映射或已生成 SSH 登录指令;
  • 使用的是平台最新生成的地址和端口;
  • 容器防火墙或安全策略未拦截 SSH 连接。

如果 Notebook 重启后无法再次连接,请重新检查服务状态并执行:

shell
mkdir -p /run/sshd
/usr/sbin/sshd