我有一个 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
并将文件“分类”到authorized_keys
$ cat ~/.ssh/nas.pub >> authorized_keys
/etc/ssh/sshd_config 设置为
has RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
不幸的是,如果我正在尝试 rsync,我会被要求提供空的释义和 ubuntu 机器的密码。有助于任何提示,
托尼
您可能混淆了用户名和授权密钥。
'cat ~/.ssh/nas.pub >> authorized_keys' 是否实际上将您的密钥放入了应该在的 '~/.ssh/authorized_keys' 中,而不是放入 '~/authorized_keys' 中?
您是否尝试过 ssh(而不是 rsync)从您的 NAS 到网络服务器?您使用哪个用户名从 rsync 运行 rsync/ssh?您是否将您的密钥放入该用户名的 .ssh/authorized_keys 中?
细节:
您应该有一个在 NAS 上运行 rsync 命令的用户。我们称他为“userNAS”。'ssh-keygen' 应该由该用户运行。然后你需要这个用户的公钥,/home/userNAS/.ssh/id_rsa.pub。
这一步可能对你很有效,我假设你使用了 root 用户。但是,从您的问题中不清楚您是如何执行“$ mkdir /root/.ssh”的,因为“$”表明您不是 root。
接下来,您需要能够在 Web 服务器上通过 ssh 登录。为此,您应该在网络服务器上有另一个用户,我们称他为“userWeb”。现在您需要将 'userNAS' 的公钥从 NAS 复制到网络服务器上用户 'userWeb' 的 'authorized_keys' 中。例如,到 '/home/userWeb/.ssh/authorized_keys'。
现在您应该可以在您的 NAS 上以 'userNAS' 的身份运行 'ssh [email protected]' 并以用户 'userWeb' 的身份登录网络服务器。但是,如果您在网络服务器上的用户也是 root,则 ssh 将不允许它登录。检查 ssh 配置中的单独选项以启用通过 ssh 登录的 root。但是,不建议这样做。
最后,rsync 应该有一个选项告诉它,它应该在网络服务器上以“userWeb”身份登录。类似'-e ssh [email protected]:/remote/dir'