飞牛OS Root用户SSH公钥登录完整教程
飞牛OS Root用户SSH公钥登录完整教程
前言
飞牛OS(fnOS)是一款基于Debian的NAS操作系统,提供了强大的数据存储和管理功能。在日常使用和管理过程中,SSH远程登录是必不可少的重要工具。然而,出于安全考
虑,飞牛OS默认禁止root用户直接SSH登录。
本教程将详细介绍如何配置SSH公钥认证,实现安全便捷的root用户远程登录。
准备工作
- 环境要求
● 一台已安装飞牛OS的设备
● 客户端计算机(Windows/Linux/macOS)
● 网络连接正常 - 开启SSH服务
在飞牛OS Web界面中: - 进入 设置 → SSH
- 打开 SSH 功能 开关
- 确保端口设置为默认的22
SSH基础知识
什么是SSH公钥认证?
SSH公钥认证是一种比密码更安全的身份验证方式:
● 私钥:保存在客户端,绝对不能泄露
● 公钥:部署在服务器上,用于验证身份
● 优势:无需输入密码、防暴力破解、更安全
飞牛OS的用户体系
根据官方文档:
● 管理员账户:创建系统时设置的用户,拥有sudo权限
● root用户:系统超级管理员,密码与管理员密码相同
● 安全策略:默认禁止root直接SSH登录,需先登录管理员账户再切换
详细配置步骤
第一步:生成SSH密钥对
Windows客户端:
打开PowerShell或命令提示符
ssh-keygen -t rsa -b 4096 -f "C:\Users\你的用户名.ssh\id_rsa" -N ""
Linux/macOS客户端:
打开终端
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
参数说明:
● -t rsa:使用RSA算法
● -b 4096:4096位密钥长度(更安全)
● -f:指定密钥文件路径
● -N "":不设置密码(如需更高安全可设置)
第二步:配置管理员账户SSH公钥
首先为管理员账户配置SSH公钥登录:
使用密码登录管理员账户
ssh fnos@192.168.31.245
创建SSH目录(如果不存在)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
添加公钥到authorized_keys
echo "你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
或者使用ssh-copy-id(推荐):
ssh-copy-id -i ~/.ssh/id_rsa.pub fnos@192.168.31.245
第三步:使用sudo配置root用户SSH
3.1 验证sudo权限
登录管理员账户后测试sudo
ssh -i ~/.ssh/id_rsa fnos@192.168.31.245
echo "你的管理员密码" | sudo -S whoami
如果返回root,说明sudo权限正常。
3.2 创建root SSH目录
创建root的SSH目录
echo "你的管理员密码" | sudo -S mkdir -p /root/.ssh
echo "你的管理员密码" | sudo -S chmod 700 /root/.ssh
3.3 添加公钥到root账户
方法一:直接追加公钥
echo "你的管理员密码" | sudo -S "echo '你的公钥内容' > /root/.ssh/authorized_keys"
方法二:复制文件(推荐)
echo "你的管理员密码" | sudo -S cp ~/.ssh/authorized_keys /root/.ssh/authorized_keys
3.4 设置正确权限
echo "你的管理员密码" | sudo -S chmod 600 /root/.ssh/authorized_keys
echo "你的管理员密码" | sudo -S chown root:root /root/.ssh -R
第四步:修改SSH配置允许root登录
备份原配置
echo "你的管理员密码" | sudo -S cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
修改配置允许root登录
echo "你的管理员密码" | sudo -S sed -i 's/PermitRootLogin no/PermitRootLogin yes/' /etc/ssh/sshd_config
验证修改
echo "你的管理员密码" | sudo -S grep PermitRootLogin /etc/ssh/sshd_config
第五步:重启SSH服务
重启SSH服务使配置生效
echo "你的管理员密码" | sudo -S systemctl restart ssh
或者(根据系统版本不同)
echo "你的管理员密码" | sudo -S service ssh restart
第六步:测试root用户SSH登录
测试root用户SSH公钥登录
ssh -i ~/.ssh/id_rsa root@192.168.31.245 "whoami && pwd"
如果返回root和/root,说明配置成功!
高级配置
创建SSH配置文件(可选)
在客户端创建~/.ssh/config文件:
fnOS管理员账户配置
Host fnos-admin
HostName 192.168.31.245
User fnos
IdentityFile ~/.ssh/id_rsa
StrictHostKeyChecking no
fnOS root账户配置
Host fnos-root
HostName 192.168.31.245
User root
IdentityFile ~/.ssh/id_rsa
StrictHostKeyChecking no
配置完成后,可以使用简化命令:
登录管理员账户
ssh fnos-admin
登录root账户
ssh fnos-root
脚本自动化配置
创建自动化配置脚本setup_root_ssh.sh:
#!/bin/bash
飞牛OS Root SSH配置脚本
使用方法: ./setup_root_ssh.sh [服务器IP] [用户名] [密码]
SERVER_IP=${1:-"192.168.31.245"}
USERNAME=${2:-"fnos"}
PASSWORD=${3:-"your_password"}
echo "开始配置飞牛OS Root SSH访问..."
echo "服务器: $SERVER_IP"
echo "用户名:$USERNAME"
生成SSH密钥对(如果不存在)
if [ ! -f ~/.ssh/id_rsa ]; then
echo "生成SSH密钥对..."
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
fi
获取公钥内容
PUBLIC_KEY=$(cat ~/.ssh/id_rsa.pub)
配置管理员SSH
echo "配置管理员SSH访问..."
ssh-copy-id -i ~/.ssh/id_rsa.pub $USERNAME@$SERVER_IP
配置root SSH
echo "配置root SSH访问..."
ssh -i ~/.ssh/id_rsa $USERNAME@$SERVER_IP << EOF
echo "$PASSWORD" | sudo -S mkdir -p /root/.ssh
echo "$PASSWORD" | sudo -S chmod 700 /root/.ssh
echo "$PASSWORD" | sudo -S "echo '$PUBLIC_KEY' > /root/.ssh/authorized_keys"
echo "$PASSWORD" | sudo -S chmod 600 /root/.ssh/authorized_keys
echo "$PASSWORD" | sudo -S chown root:root /root/.ssh -R
echo "$PASSWORD" | sudo -S sed -i 's/PermitRootLogin no/PermitRootLogin yes/' /etc/ssh/sshd_config
echo "$PASSWORD" | sudo -S systemctl restart ssh
EOF
测试连接
echo "测试root SSH连接..."
if ssh -i ~/.ssh/id_rsa root@$SERVER_IP "whoami" | grep -q "root"; then
echo "✅ Root SSH配置成功!"
echo "现在可以使用以下命令登录root账户:"
echo "ssh -i ~/.ssh/id_rsa root@$SERVER_IP"
else
echo "❌ 配置失败,请检查错误信息"
fi
安全建议
- 密钥安全
● 私钥文件权限应设置为600
● 不要在网络中传输私钥
● 定期更换密钥对
● 考虑为私钥设置密码 - 系统安全
● 限制SSH访问的IP地址
● 使用非标准端口
● 禁用密码认证(仅使用密钥)
● 定期检查登录日志 - 监控和审计
查看SSH登录日志
ssh root@192.168.31.245 "journalctl -u ssh -f"
查看当前登录用户
ssh root@192.168.31.245 "who"
常见问题解决
问题1:Permission denied (publickey)
解决方案: - 检查公钥是否正确添加到~/.ssh/authorized_keys
- 验证文件权限是否正确(600)
- 确认SSH配置中PubkeyAuthentication yes
问题2:sudo需要终端
解决方案:
使用-S选项从标准输入读取密码
echo "密码" | sudo -S 命令
问题3:SSH服务重启失败
解决方案:
检查服务状态
systemctl status ssh
查看错误日志
journalctl -u ssh -xe
问题4:公钥认证不工作
解决方案: - 检查~/.ssh目录权限(700)
- 确认authorized_keys文件权限(600)
- 验证SSH配置中的路径设置
总结
通过本教程的详细步骤,您已经成功配置了飞牛OS的root用户SSH公钥登录。这种方法不仅提供了便捷的远程管理方式,还大大提高了系统安全性。
核心要点回顾: - 飞牛OS默认禁止root直接SSH登录(安全考虑)
- 可以通过sudo权限配置root的SSH公钥
- 需要修改SSH配置允许root登录
- SSH公钥认证比密码更安全可靠
最佳实践:
● 日常管理使用管理员账户
● 必要时才使用root权限
● 定期更新和维护SSH配置
● 保持系统安全更新
希望本教程对您管理飞牛OS有所帮助!如有问题,欢迎留言讨论。

浙公网安备 33010602011771号