通过ssh进行远程root登录

时间:2016-10-28 12:46:41

标签: bash ssh scp

我有2个不同的服务器,我可以通过ssh远程访问。我目前正在编写一个bash脚本,它将通过crontab每周将一些存档从服务器A移动到服务器B.脚本将从服务器A运行。自然在某些时候它需要登录到服务器B.我设置RSA密钥并且它们工作正常(从A运行ssh user @ B并且它不再要求输入密码,我明白了。

问题是用户@ B我没有写权限(在B上禁用ssh root登录)。为了获得root访问权限,我需要使用我的常规用户@B登录,然后输入su - 并输入root密码,我有这个密码,直接从B进行操作。

我的问题是:我可以通过RSA作为常规用户@B登录B后自动编写脚本来执行此操作(输入su - 并输入root密码)吗?然后继续scp B上目标文件夹中的文件?

感谢

1 个答案:

答案 0 :(得分:0)

是的,你可以用sudo来做。

通过配置sudo(使用visudo,如#34; man 5 sudoers"中所述),您可以启用无特权的用户以root身份运行某些命令而无需密码。

然后你可以运行" ssh hostname sudo sometask"

因此,对于您的方案,首先使用" scp"将文件复制到目标位置,然后使用sudo在目标主机上运行具有提升权限的脚本。

如果你想一次性完成它你可以做的就是在本地运行tar,将它传递到ssh hostB sudo tar -C directory xf -,这样在hostB上以root身份运行的tar就能用root权限解压缩它:

tar cf - directory | ssh hostB sudo tar -C directory xf -#

(未测试的)