← 返回文档

远程访问: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.pubauthorized add。密钥传输要确保途径可信。

4. 从客户端连接

在客户端连接服务器(IP 可从 linxira-config ssh statusConnect: 行看到):

ssh 用户名@服务器IP
# 示例: ssh alice@192.168.1.100
# 指定端口: ssh -p 2222 alice@192.168.1.100

首次连接会提示确认主机指纹,输入 yes 即可。

局域网 / 公网场景

5. 安全加固建议

把电脑当作服务器对外提供连接时,建议:

⚠️ 暴露公网前请务必确认已启用密钥认证并关闭密码登录。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 文档