麒麟OS开启SSH服务需五步:确认系统版本与网络就绪;安装并启用openssh-server;放行22端口;修改sshd_config启用PasswordAuthentication和PermitRootLogin;设置root密码并本地验证。

要在麒麟系统上实现远程终端访问或文件传输,但发现SSH连接请求被拒绝、超时或直接返回“connection refused”,说明OpenSSH服务端未安装、未启动、防火墙拦截22端口,或关键认证配置被禁用。
确认系统版本与网络就绪
这一步不能跳过——V10桌面版和服务器版的包管理器、服务名、默认配置路径都不同,错用apt/dnf或ssh/sshd会导致后续全部失败。
执行cat /etc/os-release,重点核对输出中是否含Kylin-Desktop V10或VERSION_ID="10";若为V4系列(如Kylin V4 SP3),则必须改用yum/dnf命令。
运行ip a,确认主网卡(如enp0s3、eth0)已分配有效IPv4地址(非127.0.0.1或169.254.x.x);若无地址,先排查DHCP响应或手动配置静态IP。
执行ping -c 3 192.168.1.1(替换为你的网关),失败则远程连接必然不可达,需先修复局域网连通性。
安装并立即启用SSH服务
银河麒麟V10桌面版默认只装了openssh-client,【openssh-server必须手动安装】,否则systemctl根本找不到ssh服务单元。
更新源索引:sudo apt update(确认是V10后才执行此步;若为dnf系系统,请改用sudo dnf makecache)。
安装服务端:sudo apt install -y openssh-server;安装完成后,检查/usr/sbin/sshd是否存在,不存在说明安装异常。
启用开机自启并立即启动:sudo systemctl enable --now ssh;这条命令比分开执行enable+start更可靠,避免服务注册后未真正运行。
验证状态:sudo systemctl status ssh --no-pager,输出中必须出现绿色active (running)且无红色Failed字样;若显示inactive (dead),请先执行sudo systemctl daemon-reload再重试。
放行22端口(图形与命令行双路径)
方法一:图形方式(推荐给不熟悉命令行的用户)
点击“开始菜单”→“安全中心”→“网络保护”→“配置访问规则”→“所有规则”,点击“添加新规则”,设置协议为TCP、目的端口为22、动作为允许,保存后无需重启服务。
方法二:ufw命令行(若sudo ufw status verbose返回active)
sudo ufw allow 22/tcp → sudo ufw reload;注意:ufw默认可能处于inactive状态,首次启用需先执行sudo ufw enable。
方法三:iptables直通(适用于ufw未启用或策略冲突场景)
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直连
默认配置中PasswordAuthentication为no,PermitRootLogin为prohibit-password,这将导致所有密码登录失败,包括root账户。
第一步:用vim编辑配置文件:sudo vim /etc/ssh/sshd_config。
第二步:逐行定位并修改以下三项(注意取消注释#号,且值必须严格为yes):
① Port 22(确保未被注释且未被改为其他端口)
② PermitRootLogin yes(如仅需普通用户登录,可跳过此项)
③ PasswordAuthentication yes。
第三步:【务必确认#UsePAM yes仍处于注释状态】——麒麟系统启用PAM可能导致root登录循环失败,这是实测高频坑点。
第四步:保存退出后重载配置:sudo systemctl reload ssh;若修改后无法连接,请改用sudo systemctl restart ssh确保完全生效。
设置root密码并本地验证连接
麒麟桌面版默认禁用root密码,即使配置了PermitRootLogin yes,没有密码也无法登录。
为root设置密码:sudo passwd root,输入两次新密码完成设定。
本地测试是否通:ssh root@localhost;若提示输入密码且能成功进入shell,说明服务端配置已完成。
获取本机局域网IP:ip -4 a | grep inet | grep -v '127.0.0.1' | awk '{print $2}' | cut -d/ -f1;记下该IP,供外部设备连接使用。

















