免密码登录(SSH免密认证)基于公私钥的身份认证机制,免密登录最直接的优势是极大提升了运维操作的便捷性和效率,基于密钥的免密登录机制实际上比传统的密码认证更为安全,在享受免密登录便利的同时请妥善保管私钥,私钥应视为最高机密,存储在安全的位置,不应公开分享或存储在不受信任的计算机上。

安装 OpenSSH 客户端

  • Windows 10/11 默认已内置 OpenSSH 客户端

  • 检查是否安装

    :在 PowerShell 或 CMD 中输入:

    1
    ssh -V

    如果显示版本号,说明已安装

  • 手动安装

    :如果未安装,可通过以下路径安装:

    • 设置 → 应用 → 可选功能 → 添加功能 → 搜索 “OpenSSH Client”

生成 SSH 密钥对

在 PowerShell 或 CMD 中执行(请自行替换命令中的 your_email@example.com 为你自己的邮箱):

1
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

操作提示

  • 按提示输入保存路径(默认直接回车)
  • 设置密钥密码(可选,直接回车表示不设置)
  • 生成位置:C:\Users\<用户名>\.ssh\
  • 生成文件:
    • id_rsa:私钥(切勿泄露
    • id_rsa.pub:公钥(用于配置到服务器)

将公钥复制到 NAS(服务器)

方法 :手动复制

  1. 复制公钥内容

    • 打开 C:\Users\<用户名>\.ssh\id_rsa.pub
    • 复制全部内容
  2. 登录 NAS 并配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # 1. 登录 NAS(假设登录用户名为:nasuser)
    ssh nasuser@192.168.1.100

    # 2. 获取root权限
    sudo -i

    # 3. 创建 .ssh 目录(如果不存在)
    mkdir -p ~nasuser/.ssh

    # 4. 编辑 authorized_keys 文件
    nano ~nasuser/.ssh/authorized_keys

    # 5. 将复制的公钥内容粘贴到文件末尾并保存
    # 确保每个公钥单独一行,然后按下 Ctrl+X 后再按 Enter 保存,最后按 Ctrl+O 退出 nano 编辑器

    # 6. 设置权限
    chmod 700 ~nasuser/.ssh
    chmod 600 ~nasusern/.ssh/authorized_keys
  3. 修改 sshd_config,启用公钥认证

    1
    2
    sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config
    sed -i 's/#AuthorizedKeysFile/AuthorizedKeysFile/' /etc/ssh/sshd_config
  4. 重启 SSH 服务

    1
    2
    3
    systemctl restart sshd
    # 或
    ervice ssh restart

测试免密登录

在 Windows PowerShell 中执行:

1
ssh nasuser@192.168.1.100

预期结果

  • 成功:直接进入 NAS 命令行,无需输入密码
  • 失败:仍需输入密码或提示错误

高级配置(可选)

配置 SSH Config 简化连接

C:\Users\<用户名>\.ssh\config 文件中添加:

1
2
3
4
5
Host my-nas
HostName 192.168.1.100
User nasuser
IdentityFile ~/.ssh/id_rsa
Port 22 # 默认端口,如修改请相应调整

使用方式 (在PowerShell输入下面的命令即可登录NAS)

1
ssh my-nas  # 替代 ssh nasuser@192.168.1.100,

使用更安全的密钥算法(可选)

1
ssh-keygen -t ed25519 -C "your_email@example.com"

Ed25519 算法比 RSA 更安全、性能更好

安全注意事项

  1. 私钥保护
    • 私钥文件 (id_rsa) 相当于密码,切勿泄露
    • 不要将私钥发送给他人或上传到网络
  2. 公钥管理
    • 定期检查 authorized_keys 文件,移除不再使用的公钥
    • 为不同设备使用不同密钥对
  3. NAS 安全
    • 建议禁用 SSH 密码登录(配置后)
    • 修改 SSH 默认端口
    • 使用防火墙限制访问 IP