一、先搞懂:为什么推荐 SSH 密钥对登录 DSM?安全优势解析

相比传统密码登录,SSH 密钥对登录在安全性、便捷性上有显著优势,是 Synology 官方推荐的远程管理方式,核心优势如下表所示:
对比维度
传统密码登录
SSH 密钥对登录
安全性
低(密码易泄露、易被暴力破解)
高(非对称加密,私钥仅存本地,无法暴力破解)
登录便捷性
每次需输入账户密码,效率低
免密码登录(加载私钥即可),支持批量管理
权限管控
仅依赖密码验证,权限边界模糊
可精细化配置 “指定密钥对应指定账户”,权限可控
抗风险能力
密码泄露即导致账户被盗
私钥本地存储,即使公钥泄露也无法登录
适用场景
临时、低频登录
长期、高频管理 DSM(如运维、脚本执行)
关键说明:SSH 密钥对由 “公钥(Public Key)” 和 “私钥(Private Key)” 组成 —— 公钥可公开(如上传到 DSM),私钥需妥善保存在本地(如电脑硬盘),登录时通过私钥与公钥的匹配完成认证,无需传输密码,从根源避免密码泄露风险。

二、Step1:客户端生成 SSH 密钥对(分 3 大系统,详细操作)

不同操作系统(Windows/macOS/Linux)生成 SSH 密钥对的工具与步骤不同,需根据自身客户端系统选择对应方法,核心是生成符合 DSM 要求的 RSA 格式密钥(推荐 2048 位及以上长度,兼顾安全与性能)。

1. 场景 1:Windows 客户端(用 PuTTYgen 生成,适合新手)

Windows 系统需使用 PuTTY 套件中的 “PuTTYgen” 工具生成密钥对(PuTTY 是 Windows 常用 SSH 客户端,官方免费),步骤如下:

步骤 1:下载并打开 PuTTYgen

  1. 访问 PuTTY 官网(https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html),下载 “PuTTYgen”(32 位 / 64 位根据系统选择,通常选 64 位);
  1. 双击打开 PuTTYgen,界面默认显示 “Type of key to generate” 为 “RSA”(DSM 支持 RSA 密钥,无需修改),“Number of bits in a generated key” 设为 “2048”(或 4096,安全性更高,生成时间略长)。

步骤 2:生成密钥对

  1. 点击「Generate」按钮,开始生成密钥(生成过程中需来回移动鼠标,增加随机性,确保密钥安全);
  1. 等待约 10 秒,密钥生成完成,界面会显示 “Public key for pasting into OpenSSH authorized_keys file”(公钥内容)和 “Key fingerprint”(密钥指纹)。

步骤 3:保存私钥与公钥(关键,避免丢失)

  1. 保存私钥(本地唯一凭证,不可泄露):
    • 点击「Save private key」,弹出提示 “Are you sure you want to save this key without a passphrase?”(是否无密码保护私钥):
      • 若为个人电脑,可选择「Yes」(免密码登录,便捷);
      • 若为公共电脑,建议选择「No」,设置 “Key passphrase”(私钥密码,额外保护,登录时需输入);
    • 选择保存路径(如 “D:SSHDSM_Key.ppk”),文件名建议含 “DSM” 标识,方便区分,点击「保存」。
  1. 保存公钥(需上传到 DSM,可公开):
    • 选中 “Public key for pasting...” 下方的公钥内容(从 “ssh-rsa” 开头到结尾的邮箱 / 备注,全选,不要遗漏或多复制空格);
    • 粘贴到记事本中,保存为 “DSM_Public_Key.pub”(如 “D:SSHDSM_Public_Key.pub”),后续需上传到 DSM。

2. 场景 2:macOS/Linux 客户端(用终端生成,原生支持)

macOS(自带终端)与 Linux(如 Ubuntu、CentOS)系统原生支持 SSH 命令,无需额外安装工具,直接通过终端生成密钥对,步骤如下:

步骤 1:打开终端并执行生成命令

  1. macOS:点击 Dock 栏「启动台」→「其他」→「终端」;
Linux:按「Ctrl+Alt+T」打开终端;
  1. 执行密钥生成命令(生成 RSA 格式密钥,备注为 DSM 登录用):
ssh-keygen -t rsa -b 2048 -C "DSM_SSH_Login"
    • 参数说明:-t rsa指定密钥类型为 RSA,-b 2048指定密钥长度 2048 位,-C添加备注(便于识别)。

步骤 2:设置密钥保存路径与密码(可选)

  1. 执行命令后,终端提示 “Enter file in which to save the key (/Users/yourname/.ssh/id_rsa):”(密钥保存路径):
    • 按回车使用默认路径(~/.ssh/id_rsa,即用户目录下的.ssh 文件夹),或输入自定义路径(如/Users/yourname/Documents/DSM_Key);
  1. 提示 “Enter passphrase (empty for no passphrase):”(设置私钥密码,可选):
    • 直接回车:无密码保护,后续登录免输密码;
    • 输入密码并确认:设置私钥密码,登录时需额外验证(更安全)。

步骤 3:确认密钥生成成功

  1. 执行命令后,终端显示 “Your identification has been saved in ...”“Your public key has been saved in ...”,说明生成成功;
  1. 查看密钥文件:
    • 私钥:默认路径~/.ssh/id_rsa(无后缀,仅本地存储);
    • 公钥:默认路径~/.ssh/id_rsa.pub(需上传到 DSM,可通过cat ~/.ssh/id_rsa.pub查看公钥内容)。

三、Step2:DSM 端配置 SSH 密钥登录(分 admin/root 账户)

生成密钥对后,需在 DSM 端将公钥添加到目标账户(admin 或 root),并开启 SSH 密钥登录功能,这是实现密钥登录的核心配置步骤。

1. 前提:开启 DSM 的 SSH 服务(必做)

无论配置哪个账户,都需先开启 DSM 的 SSH 服务,操作如下(以 DSM 7.2 版本为例):
  1. 登录 DSM 网页端(如https://192.168.1.100:5001),打开「控制面板」→「终端机和 SNMP」;
  1. 在「终端机」选项卡中,勾选「启用 SSH 服务」,默认端口为 22(若需修改,记录新端口,后续登录需对应调整);
  1. 点击「应用」,DSM 会提示 “SSH 服务已启动”,此时 SSH 端口已开放。

2. 配置 1:admin 账户 SSH 密钥登录(常用,推荐)

admin 是 DSM 默认管理员账户,多数场景下配置 admin 的密钥登录即可满足需求,步骤如下:

步骤 1:进入 admin 账户的 SSH 密钥设置

  1. 打开「控制面板」→「用户与群组」,在用户列表中找到 “admin” 账户,点击「编辑」;
  1. 在弹出的「编辑用户」窗口中,切换到「SSH 密钥」选项卡(DSM 7.0 + 版本直接显示,6.2 版本需在「高级选项」中找到)。

步骤 2:上传公钥到 DSM

  1. 点击「添加」→「从文件导入」(或「手动输入」,根据公钥保存方式选择):
    • 从文件导入(推荐,避免手动输入错误):点击「浏览」,选择客户端生成的公钥文件(如 Windows 的 “DSM_Public_Key.pub”,macOS/Linux 的 “id_rsa.pub”),点击「确定」;
    • 手动输入:打开公钥文件,全选内容(从 “ssh-rsa” 开头到结尾),粘贴到 “公钥内容” 输入框,确保无多余空格、换行;
  1. 点击「确定」,公钥会显示在 “已添加的 SSH 密钥” 列表中,状态为 “有效”。

步骤 3:验证密钥登录配置(关键)

  1. 点击「应用」保存配置,此时 admin 账户已支持 SSH 密钥登录;
  1. 关闭当前 DSM 网页端(可选),准备通过客户端测试登录(下文 Step3 详解)。

3. 配置 2:root 账户 SSH 密钥登录(进阶,需谨慎)

root 是 Linux 系统的超级管理员账户,权限高于 admin,适合需要执行底层命令(如修改系统文件)的场景,但风险较高,需谨慎启用,步骤如下:

步骤 1:先通过 admin 登录 DSM 开启 root SSH 权限

默认情况下,DSM 禁用 root 的 SSH 登录,需先通过 admin 登录 SSH 修改配置:
  1. 用 admin 账户通过密码登录 DSM SSH(测试用,后续会改为密钥登录):
    • Windows:打开 PuTTY,输入 DSM IP 和端口 22,用户名 “admin”,输入密码登录;
    • macOS/Linux:终端执行ssh admin@192.168.1.100,输入 admin 密码登录;
  1. 执行命令修改 SSH 配置文件(sshd_config):
sudo vi /etc/ssh/sshd_config
  1. 在 vi 编辑器中,按「i」进入编辑模式,找到以下配置项并修改:
    • 找到 “PermitRootLogin”,将其值改为 “yes”(默认可能为 “no” 或 “prohibit-password”,禁止 root 登录);
    • 找到 “PubkeyAuthentication”,确保值为 “yes”(启用公钥认证);
  1. 按「Esc」,输入「:wq」保存并退出 vi 编辑器。

步骤 2:重启 SSH 服务使配置生效

执行命令重启 SSH 服务(DSM 7.0 + 版本):
sudo synoservice --restart sshd
  • 若为 DSM 6.2 版本,执行sudo /etc/init.d/ssh restart。

步骤 3:添加公钥到 root 账户

  1. 方法 1:通过 admin 账户复制公钥到 root 目录(推荐):
    • 若公钥已添加到 admin 账户,执行命令将 admin 的公钥复制到 root 的 SSH 密钥目录:
sudo cp /var/services/homes/admin/.ssh/authorized_keys /root/.ssh/sudo chown root:root /root/.ssh/authorized_keyssudo chmod 600 /root/.ssh/authorized_keys
    • 命令说明:复制 admin 的授权密钥到 root 目录,修改文件所有者为 root,权限设为 600(仅 root 可读写,确保安全)。
  1. 方法 2:手动上传公钥到 root 账户(类似 admin 配置):
    • 通过 SFTP 工具(如 FileZilla)登录 DSM,将公钥文件上传到/root/.ssh/目录(若.ssh 目录不存在,手动创建);
    • 执行命令修改权限(同方法 1 的后两条命令)。

步骤 4:禁用 root 密码登录(提升安全,可选)

为避免 root 被密码暴力破解,建议配置 root 仅允许密钥登录,禁止密码登录:
  1. 再次编辑sshd_config文件:
sudo vi /etc/ssh/sshd_config
  1. 找到 “PasswordAuthentication”,改为 “no”(禁止密码登录,仅允许密钥登录);
  1. 重启 SSH 服务(同步骤 2),此时 root 仅能通过密钥登录。

四、Step3:客户端通过密钥对登录 DSM(分系统实操)

完成 DSM 端配置后,即可通过客户端加载私钥登录 DSM,无需输入账户密码(若私钥设置了密码,需输入私钥密码),不同系统操作如下:

1. Windows 客户端(用 PuTTY 登录)

  1. 打开 PuTTY,在「Session」选项卡中配置基础信息:
    • 「Host Name (or IP address)」:输入 DSM 的局域网 IP(如192.168.1.100);
    • 「Port」:输入 DSM 的 SSH 端口(默认 22,若修改则输入新端口);
    • 「Connection type」:选择「SSH」。
  1. 配置私钥加载:
    • 左侧展开「Connection」→「SSH」→「Auth」;
    • 点击「Browse」,选择之前保存的私钥文件(如 “D:SSHDSM_Key.ppk”);
    • 点击「Open」,弹出 PuTTY 终端窗口。
  1. 完成登录:
    • 终端提示 “login as:”,输入目标账户(如 “admin” 或 “root”);
    • 若私钥设置了密码,提示 “Enter passphrase for key '...'”,输入私钥密码;
    • 登录成功后,终端显示 “admin@DSM:~$”(admin 账户)或 “root@DSM:~#”(root 账户),说明密钥登录生效。

2. macOS/Linux 客户端(用终端登录)

方法 1:直接指定私钥路径登录(适合临时登录)

  1. 打开终端,执行登录命令(替换 IP、账户和私钥路径):
# 登录admin账户,私钥为默认路径ssh admin@192.168.1.100 -i ~/.ssh/id_rsa# 登录root账户,私钥为自定义路径ssh root@192.168.1.100 -i /Users/yourname/Documents/DSM_Key
    • 参数说明:-i指定私钥文件路径,若私钥为默认路径(~/.ssh/id_rsa),可省略-i参数(终端会自动查找默认私钥)。
  1. 登录成功后,终端显示对应账户的命令提示符,完成登录。

方法 2:配置 SSH config 实现免路径登录(适合高频登录)

为避免每次登录都输入私钥路径,可通过配置~/.ssh/config文件简化操作:
  1. 执行命令创建并编辑 config 文件:
vi ~/.ssh/config
  1. 按「i」进入编辑模式,添加以下内容(根据实际情况修改):
Host DSM_Admin  # 自定义主机名(如“DSM_Admin”,便于识别)HostName 192.168.1.100  # DSM的IP地址User admin  # 登录账户(admin)Port 22  # SSH端口(默认22)IdentityFile ~/.ssh/id_rsa  # 私钥路径Host DSM_Root  # 自定义主机名(如“DSM_Root”)HostName 192.168.1.100User root  # 登录账户(root)Port 22IdentityFile ~/.ssh/id_rsa
  1. 按「Esc」→「:wq」保存退出,执行命令修改 config 文件权限(确保安全):
chmod 600 ~/.ssh/config
  1. 后续登录时,仅需执行简化命令:
ssh DSM_Admin  # 登录admin账户ssh DSM_Root   # 登录root账户

五、常见故障排查:SSH 密钥登录失败的 6 大原因解决

若遇到 “登录被拒绝”“私钥验证失败” 等问题,可按以下方向逐一排查,80% 故障可快速解决:
故障现象
可能原因
详细解决步骤
1. 提示 “Permission denied (publickey)”
1. 公钥未正确添加到 DSM 账户2. 私钥权限过高(Linux/macOS)3. 公钥格式错误
1. 重新检查 DSM 账户的「SSH 密钥」列表,确认公钥存在且无多余空格2. Linux/macOS 执行chmod 600 ~/.ssh/id_rsa(私钥权限仅当前用户可读写)3. 重新生成公钥,确保全选内容上传,无遗漏 “ssh-rsa” 前缀
2. 提示 “Connection refused”
1. DSM SSH 服务未开启2. 端口被防火墙拦截3. IP / 端口输入错误
1. 登录 DSM 网页端,确认「启用 SSH 服务」已勾选2. 检查 DSM 防火墙(「控制面板→安全性→防火墙」),允许 SSH 端口(22)入站3. 核对 DSM IP 和端口,确保无输入错误
3. root 登录提示 “Permission denied”
1. root SSH 权限未开启2. 公钥未添加到 root 目录3. sshd_config 配置错误
1. 按 Step2-3 重新修改sshd_config,确保 “PermitRootLogin yes”2. 执行ls /root/.ssh/authorized_keys,确认文件存在且权限为 6003. 重启 SSH 服务(sudo synoservice --restart sshd)
4. PuTTY 提示 “Couldn't load private key”
1. 私钥文件损坏2. 私钥格式错误(非 PuTTY 支持的.ppk 格式)
1. 重新从客户端生成并保存私钥,避免文件损坏2. 若私钥为 OpenSSH 格式(如.id_rsa),用 PuTTYgen「Load」导入后「Save private key」转为.ppk 格式
5. 终端提示 “Bad owner or permissions on ~/.ssh/config”
config 文件权限过高(Linux/macOS)
执行chmod 600 ~/.ssh/config,将权限设为仅当前用户可读写(避免其他用户修改)
6. 登录成功后立即断开连接
1. 账户被禁用2. sshd_config 配置冲突
1. 登录 DSM 网页端,确认 admin/root 账户未被禁用(「用户与群组」→账户状态为 “正常”)2. 检查sshd_config是否有其他冲突配置(如 “AllowUsers” 仅允许特定账户,需添加 admin/root)

六、安全建议:保护 SSH 密钥,避免账户风险

SSH 密钥是 DSM 远程登录的核心凭证,需通过以下措施保障安全,避免私钥泄露导致账户被盗:
  1. 私钥本地存储,不传输不共享:私钥仅保存在信任的个人设备(如工作电脑),不通过邮件、聊天工具传输,不共享给他人;
  1. 设置私钥密码(重要):生成私钥时建议设置密码,即使私钥文件泄露,他人也无法使用(macOS/Linux 可通过ssh-keygen -p为已生成的私钥添加密码);
  1. 定期更换密钥:每 3-6 个月重新生成密钥对,删除 DSM 端旧公钥,避免长期使用同一密钥导致风险累积;
  1. 禁用不必要的 SSH 账户:仅为需要远程管理的账户(如 admin)配置密钥登录,其他账户禁用 SSH 权限(「用户与群组」→「编辑」→「应用程序权限」→「终端机」设为 “拒绝”);
  1. 开启 DSM 防火墙:仅允许信任的 IP(如办公网络 IP)访问 SSH 端口,在「控制面板→安全性→防火墙」添加规则,限制访问来源。
通过以上步骤,你可成功实现 Synology DSM 的 SSH 密钥对登录,既能享受免密码登录的便捷,又能大幅提升远程管理的安全性。若遇到特殊场景(如 DSM 版本差异导致的界面变化),可参考 Synology 官方文档或联系技术支持,确保配置符合官方规范。
需要我帮你整理一份DSM SSH 密钥登录快速操作卡片吗?卡片会提炼客户端密钥生成、DSM 配置、登录实操的核心步骤,方便你保存到设备,后续配置新客户端时无需重复翻阅全文。
Synology DSM SSH密钥对登录教程:admin/root权限配置(Windows/macOS/Linux)2024

新闻中心

联系我们

技术支持

  • ·

    Synology 无法访问共享文...

  • ·

    Synology NAS Win...

  • ·

    如何用 DiXiM Media ...

  • ·

    Synology DSM常规设置...

  • ·

    Active Backup fo...

  • ·

    Synology NAS打开Of...

  • ·

    Synology Migrati...

  • ·

    Synology Office多...

相关文章

地址:北京市海淀区白家疃尚品园             1号楼225

北京群晖时代科技有限公司

微信咨询