我有2个不同的服务器,它们通过ssh远程访问。我当前正在编写一个bash脚本,它将每周通过crontab将一些档案从服务器A移到服务器B。脚本将从服务器A运行。自然地,它需要登录到服务器B。我设置了RSA密钥,并且它们工作正常(从A运行ssh user @ B,并且不再要求输入密码了,我得到了就在)。
问题是user @ B我没有写权限(在B上禁用了ssh根登录)。为了获得root访问权限,我需要使用常规的user @ B登录,然后键入su-并输入我拥有的root密码,当直接从B进行登录时可以使用。
我的问题是:在通过RSA以常规用户@B身份登录B后,我可以对脚本进行编程以自动执行此操作(键入su-并输入root密码)吗?然后继续在B上的目标文件夹中SCP文件?
谢谢
是的,您可以使用sudo做到这一点。
通过配置sudo(如“ man 5 sudoers”中所述,使用visudo)可以使无特权的用户能够以root用户身份运行某些命令,而无需输入密码。
然后,您可以运行“ ssh主机名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 -#
(未试)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句