通过sshlogin时从服务器下载文件

我的服务器上禁用了root用户的sshlogin,但是我现在想把一些由root用户拥有的文件备份到我的本地机器上。

我正试图找出一种方法来使用SCP通过SSHlogin时检索文件,而无需在本地盒子上运行ssh守护程序,也无需安装任何其他工具。

只是想知道这是可能的? 我不认为这是..

我能想到的唯一的方法是运行一个脚本,通过用户帐户login然后苏的根,然后复制 – 但我想避免这一点,因为我不希望硬编码我的根密码到一个脚本文件在我的本地机器上。

你可以用rsync,ssh和sudo的组合来做你想做的事情。

如果您将本地用户添加到您的计算机“特权”,则可以允许该用户通过sudo运行rsync。 这将允许您远程获取只能由root用户访问本地系统的文件。

# # Our backup client needs to rsync in a privileged manner. # privileged ALL = NOPASSWD: /usr/bin/rsync 

一旦你有这个地方,你可以运行这样的东西来获取文件:

 rsync --rsync-path="sudo rsync" [email protected]:/root /backup_directory 

在服务器上启用rootlogin,但仅限于passkey。 在你的本地机器上设置一个密钥对,把公钥放在服务器上root的authorized_keys文件中,然后离开你。

这是99.9999%安全的不允许根login, 只要你保护密钥对被盗

如果您在密钥上设置了一个复杂的密码短语,那么您需要在场以运行备份,或者使用ssh-agent或类似的东西。 或者,您可能不会在密钥上input密码,现在您可以通过root用户对您的服务器进行无密码访问了。 显然,在这种情况下,私钥的盗窃是一个更严重的问题,因此您需要了解这些风险并减轻风险,或使用强大的密码短语。

我知道这不是你所要求的,但老实说,passkey保护的rootlogin是安全的(警告你应该保持最新的sshd补丁)。

其他任何允许目标服务器上的用户标识足够权限的选项都是root用户,而不必将它们放在受密码保护的sshlogin名之后,这实际上不是安全的,而仅仅是通过passkey来允许root用户。

如果您的本地工作站具有可预测的IP地址,则可以使用AllowUsers选项使其更安全。

例如

AllowUsers [email protected]