必须完成服务安装、启动、端口放行、配置修改和账户激活五步闭环操作:确认系统版本并用对应包管理器安装openssh-server;openkylin需先解锁维护模式再安装;启动并启用ssh服务;开放22端口;修改sshd_config启用passwordauthentication yes和permitrootlogin yes;设置root密码后测试连接。

要在麒麟系统终端上开启SSH远程连接,必须让本地系统作为SSH服务端被其他设备访问,而不是仅用ssh命令连接别人——这要求安装服务端程序、启动守护进程、放行端口、调整认证策略并激活root账户,缺一环都会导致Connection refused或Permission denied。
确认系统版本与基础环境
银河麒麟V10桌面版和OpenKylin的安装机制完全不同,混用apt/dnf或忽略维护模式会导致安装失败甚至系统异常。先看清楚自己跑的是哪个系统。
执行cat /etc/os-release,重点检查两处:【ID="kylin"且VERSION_ID="10"】表示标准麒麟V10;【ID="openkylin"】则必须走维护模式流程,跳过此小节直接进入“解锁维护模式安装SSH”步骤。
若为标准V10,再运行ip a确认主网卡(如enp0s3)已获取IPv4地址,例如192.168.1.105——没有有效IP,远程根本连不到你这台机器。
安装并启动OpenSSH服务端
银河麒麟桌面版默认不带sshd二进制文件,光有客户端没用。这一步是所有后续操作的前提。
更新源并安装服务端:sudo apt update && sudo apt install -y openssh-server
安装完成后立即验证:ls /usr/sbin/sshd必须输出该路径,否则说明包未真正落地,需重试或换镜像源。
启用开机自启并启动服务:sudo systemctl enable ssh && sudo systemctl start ssh
检查状态:sudo systemctl status ssh --no-pager,看到active (running)且无红色failed字样才算成功。如果显示inactive (dead),大概率是服务名写错成了sshd——麒麟V10用的是ssh,不是sshd。
解锁维护模式安装SSH(仅OpenKylin适用)
OpenKylin基于OSTree不可变系统,根目录默认只读,直接运行apt install会报Permission denied。必须先进入维护模式获取临时写权限,再安装并固化变更。
- 按Win + T打开终端,执行
sudo mm-cli -o,输入当前用户密码确认进入维护模式;随后执行sudo reboot重启生效。 - 重启后系统处于维护模式,此时执行
sudo apt update && sudo apt install -y openssh-server即可正常安装。 - 启动服务:
sudo systemctl start ssh && sudo systemctl enable ssh。 -
【退出前必须固化修改,否则重启后SSH消失】:执行
sudo mm-cli -c -a(-c关闭维护模式,-a接受并保存所有变更),再sudo reboot完成永久生效。
开放22端口并配置防火墙
即使sshd在跑,防火墙拦着,外部连接照样超时。麒麟系统常见三种防火墙策略:安全中心图形界面、ufw、iptables,选一种适配当前环境即可。
方法一(推荐图形方式):点击“开始菜单”→“安全中心”→“网络保护”→“配置访问规则”→“所有规则”,点击“添加新规则”,协议选TCP、目的端口填22、动作为允许。
方法二(ufw命令行):先确认ufw是否启用:sudo ufw status verbose;若为inactive,先执行sudo ufw enable;再放行端口:sudo ufw allow 22;最后用sudo ufw status | grep 22确认输出含22/tcp ALLOW IN Anywhere。
方法三(iptables临时放行):sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT。注意:该规则重启后失效,如需持久化,得配合sudo iptables-save > /etc/iptables/rules.v4(路径因系统而异)。
验证端口是否真正开放:sudo netstat -tunlp | grep :22,应看到sshd绑定在0.0.0.0:22或[::]:22。
修改sshd_config启用密码认证与root登录
/etc/ssh/sshd_config是控制谁能连上来的总开关,默认设置会直接拒绝所有密码登录和root直连——这就是为什么你ping得通、端口也开着,却还是连不上。
用vim编辑配置文件:sudo vim /etc/ssh/sshd_config
找到以下三行,确保它们存在且未被注释(即行首不能有#):
Port 22
PermitRootLogin yes
PasswordAuthentication yes
【务必保持#UsePAM yes这一行仍为注释状态】——麒麟系统中启用PAM会导致root密码认证失败,这是实测踩坑点。
保存退出后重载配置:sudo systemctl reload ssh。不要用restart,reload能保留已有连接且生效更快。
设置root密码并测试连接
麒麟桌面版默认禁用root密码,即使配置允许root登录,没设密码也白搭。
执行sudo passwd root,输入两次新密码完成设定。
再检查一次配置是否生效:sudo grep -E "^(PermitRootLogin|PasswordAuthentication)" /etc/ssh/sshd_config,输出应为两行均显示yes。
最后,在本机终端执行ssh root@127.0.0.1测试本地回环连接;成功后再从另一台电脑(如Windows用MobaXterm)执行ssh root@192.168.1.105(替换为你的真实IP)进行跨设备验证。











