我有 Synology DS213 J Nas 系统。我尝试将文件夹从 ubuntu 12.04 网络服务器同步到 nas,无需输入密码。因此,我使用 root 帐户通过终端登录到 nas。
创建 ssh 目录 /root/.ssh
$ mkdir /root/.ssh
创建密钥
$ ssh-keygen
-> 空洞的释义
因此 ssh-copy-id 无法在 synology nas 上运行,我手动将 id_rsa.pub 复制到了 ubuntu 机器上
$ cat id_rsa.pub
将其复制并粘贴到 ubuntu 服务器上
$ ~/.ssh/nas.pub
并将文件“cated”到authorized_keys中
$ cat ~/.ssh/nas.pub >> authorized_keys
/etc/ssh/sshd_config 设置为
has RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
不幸的是,如果我尝试 rsync,系统会要求我输入空的释义和 ubuntu 机器的密码。任何提示都有帮助,
托尼
答案1
您可能混淆了用户名和授权密钥。
“cat ~/.ssh/nas.pub >> authorized_keys” 是否真的将您的密钥放入了它应该在的“~/.ssh/authorized_keys”中,而不是“~/authorized_keys”中?
您是否尝试过从 NAS 通过 ssh(而非 rsync)连接到 Web 服务器?您使用哪个用户名从 rsync 运行 rsync/ssh?您是否将密钥放入该用户名的 .ssh/authorized_keys 中?
细节:
您应该有一个在 NAS 上运行 rsync 命令的用户。我们称他为“userNAS”。“ssh-keygen”应该由该用户运行。然后您需要该用户的公钥,/home/userNAS/.ssh/id_rsa.pub。
这一步对你来说可能没问题,我假设你使用 root 用户执行此操作。但是,从你的问题中不清楚你是如何执行“$ mkdir /root/.ssh”的,因为“$”表明你不是 root。
接下来,您需要能够通过 ssh 登录 Web 服务器。为此,您应该在 Web 服务器上有另一个用户,我们称他为“userWeb”。现在您需要将 NAS 中的“userNAS”公钥复制到 Web 服务器上用户“userWeb”的“authorized_keys”中。例如,复制到“/home/userWeb/.ssh/authorized_keys”。
现在你应该可以运行'ssh[电子邮件保护]' 在您的 NAS 上以 'userNAS' 身份登录并以用户 'userWeb' 身份登录到 Web 服务器。但是,如果 Web 服务器上的用户也是 root,则 ssh 将不允许其登录。选中 ssh 配置中的单独选项以通过 ssh 启用 root 登录。但是,不建议这样做。
最后,rsync 应该有一个选项告诉它,它应该以“userWeb”身份登录网络服务器。类似“-e ssh[电子邮件保护]:/远程/目录'