飞牛OS Root用户SSH公钥登录完整教程

飞牛OS Root用户SSH公钥登录完整教程
前言
飞牛OS(fnOS)是一款基于Debian的NAS操作系统,提供了强大的数据存储和管理功能。在日常使用和管理过程中,SSH远程登录是必不可少的重要工具。然而,出于安全考
虑,飞牛OS默认禁止root用户直接SSH登录。
本教程将详细介绍如何配置SSH公钥认证,实现安全便捷的root用户远程登录。
准备工作

  1. 环境要求
    ● 一台已安装飞牛OS的设备
    ● 客户端计算机(Windows/Linux/macOS)
    ● 网络连接正常
  2. 开启SSH服务
    在飞牛OS Web界面中:
  3. 进入 设置 → SSH
  4. 打开 SSH 功能 开关
  5. 确保端口设置为默认的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

安全建议

  1. 密钥安全
    ● 私钥文件权限应设置为600
    ● 不要在网络中传输私钥
    ● 定期更换密钥对
    ● 考虑为私钥设置密码
  2. 系统安全
    ● 限制SSH访问的IP地址
    ● 使用非标准端口
    ● 禁用密码认证(仅使用密钥)
    ● 定期检查登录日志
  3. 监控和审计
    查看SSH登录日志
    ssh root@192.168.31.245 "journalctl -u ssh -f"
    查看当前登录用户
    ssh root@192.168.31.245 "who"
    常见问题解决
    问题1:Permission denied (publickey)
    解决方案:
  4. 检查公钥是否正确添加到~/.ssh/authorized_keys
  5. 验证文件权限是否正确(600)
  6. 确认SSH配置中PubkeyAuthentication yes
    问题2:sudo需要终端
    解决方案:
    使用-S选项从标准输入读取密码
    echo "密码" | sudo -S 命令
    问题3:SSH服务重启失败
    解决方案:
    检查服务状态
    systemctl status ssh
    查看错误日志
    journalctl -u ssh -xe
    问题4:公钥认证不工作
    解决方案:
  7. 检查~/.ssh目录权限(700)
  8. 确认authorized_keys文件权限(600)
  9. 验证SSH配置中的路径设置
    总结
    通过本教程的详细步骤,您已经成功配置了飞牛OS的root用户SSH公钥登录。这种方法不仅提供了便捷的远程管理方式,还大大提高了系统安全性。
    核心要点回顾:
  10. 飞牛OS默认禁止root直接SSH登录(安全考虑)
  11. 可以通过sudo权限配置root的SSH公钥
  12. 需要修改SSH配置允许root登录
  13. SSH公钥认证比密码更安全可靠
    最佳实践:
    ● 日常管理使用管理员账户
    ● 必要时才使用root权限
    ● 定期更新和维护SSH配置
    ● 保持系统安全更新
    希望本教程对您管理飞牛OS有所帮助!如有问题,欢迎留言讨论。
posted @ 2025-11-07 12:34  masx200  阅读(3)  评论(0)    收藏  举报