远程访问:SSH
Linxira OS 内置 OpenSSH 服务端与 linxira-config SSH 管理工具。本文介绍如何快速把 Linxira 电脑变成可远程连接的服务器,以及如何从其他设备安全地连入。
📌 当前实验性正式版状态:
linxira-config ssh status / key / authorized 命令完全可用;ssh on / off / port 已实现但需等待事务后端正式启用,本文第 1 步提供了当前可直接使用的等效命令。1. 开启 SSH 服务
先查看 SSH 当前状态:
linxira-config ssh status 输出示例:
SSH Status
Service state: inactive
Service startup: disabled
Port: 22
Root login: prohibit-password
Password authentication: yes
Connect: ssh user@192.168.1.100 -p 22 1
启用并启动 sshd 服务(当前实验性正式版使用等效命令,后续版本将统一为 linxira-config ssh on):
sudo systemctl enable --now sshd 如果启用了 UFW 防火墙,放行 SSH 端口:
sudo ufw allow ssh # 或指定端口: sudo ufw allow 22/tcp 2
确认状态:
linxira-config ssh status
# Service state: active → 成功 2. 生成密钥对(本机)
在客户端(即你想用来连接的那台电脑)上生成 Ed25519 密钥对,比密码登录更安全:
linxira-config ssh key generate
# 或指定名称: linxira-config ssh key generate work-laptop 生成后查看公钥与指纹:
linxira-config ssh key list # 列出所有密钥
linxira-config ssh key show # 显示默认公钥内容
linxira-config ssh key fingerprint # 显示默认公钥指纹 3. 授权密钥(服务器端)
在服务器(即 Linxira 电脑)上,把你的公钥加入 authorized_keys:
1
获取公钥内容:在客户端执行 linxira-config ssh key show,复制输出的整行(ssh-ed25519 AAAA... linxira@hostname)。
2
保存为临时文件并在服务器上授权(authorized add 只接受普通公钥,拒绝带 options 的条目,防止 shell 执行路径):
# 在服务器上,把公钥粘贴保存到文件
echo 'ssh-ed25519 AAAA... linxira@hostname' > /tmp/mykey.pub
linxira-config ssh authorized add /tmp/mykey.pub
rm /tmp/mykey.pub 3
查看已授权列表:
linxira-config ssh authorized list 💡 快速做法:如果你有两台机器都装了 linxira-config,也可以直接在客户端复制公钥字符串,通过 U 盘 / 安全聊天传输后
echo ... > /tmp/mykey.pub 再 authorized add。密钥传输要确保途径可信。4. 从客户端连接
在客户端连接服务器(IP 可从 linxira-config ssh status 的 Connect: 行看到):
ssh 用户名@服务器IP
# 示例: ssh alice@192.168.1.100
# 指定端口: ssh -p 2222 alice@192.168.1.100 首次连接会提示确认主机指纹,输入 yes 即可。
局域网 / 公网场景
- 同一局域网:直接用内网 IP 连接,无需额外配置。
- 跨网络 / 公网:在路由器上做端口转发,或使用 Tailscale / ZeroTier 等组网工具,避免直接暴露 22 端口。
- 主机名:同一局域网内也可用
ssh 用户@主机名.local(需 mDNS)。
5. 安全加固建议
把电脑当作服务器对外提供连接时,建议:
- 关闭密码登录,只允许密钥:编辑
/etc/ssh/sshd_config,设置PasswordAuthentication no,然后sudo systemctl restart sshd。 - 禁止 root 直接登录:默认
PermitRootLogin prohibit-password已较安全;如需彻底关闭可改为no。 - 开启 UFW 防火墙:
sudo ufw enable并仅放行需要的端口。 - 安装 fail2ban(可选):
sudo pacman -S fail2ban,防止暴力破解。 - 更换默认端口(可选):编辑
/etc/ssh/sshd_config的Port项,减少扫描攻击。
⚠️ 暴露公网前请务必确认已启用密钥认证并关闭密码登录。Linxira 的
ssh authorized add 只接受无 options 的纯公钥,这是刻意的安全设计——它不会把带 command= 或 environment= 的条目写入 authorized_keys。6. 关闭与移除
# 关闭 SSH 服务(当前实验性正式版等效命令,后续为 linxira-config ssh off)
sudo systemctl disable --now sshd
# 移除某个已授权密钥(先 authorized list 拿到指纹)
linxira-config ssh authorized list
linxira-config ssh authorized remove SHA256:xxxx --yes
# 删除本机某个密钥对
linxira-config ssh key remove work-laptop --yes 命令速查表
| 命令 | 作用 |
|---|---|
linxira-config ssh status | 查看服务状态、端口、连接方式 |
linxira-config ssh key generate [name] | 生成 Ed25519 密钥对 |
linxira-config ssh key list | 列出本机公钥 |
linxira-config ssh key show [name] | 显示公钥内容 |
linxira-config ssh key fingerprint [name] | 显示公钥指纹 |
linxira-config ssh key remove <name> --yes | 删除密钥对 |
linxira-config ssh authorized list | 列出已授权密钥 |
linxira-config ssh authorized add <pubkey-file> | 授权一个纯公钥 |
linxira-config ssh authorized remove <fp> --yes | 按指纹移除授权 |
更多配置与诊断能力(镜像源、网络诊断、安全状态)见 Config Hub 文档。