我有一个以root用户身份运行的脚本。它ssh到远程主机并以gol用户身份运行脚本。我已将user(gol)的ssh密钥添加到远程主机。但是,由于脚本是作为root用户运行的,因此仍然会提示您输入密码。脚本内容如下
ssh gol@remotehost '/home/scripts/script1.sh'
所以我在运行ssh命令之前将命令更改为切换到本地用户(因为gol用户已添加ssh密钥),但是失败了。
su - gol -c ssh gol@remotehost '/home/scripts/script1.sh'
我需要以root用户身份运行此脚本,因为该脚本还有其他脚本。
问题在于,默认情况下,SSH将尝试使用root
的私钥,因为客户端以root身份运行。如果您仍然想以root身份运行但想使用gol的私钥,那么这可能是可行的,因为root可以访问所有内容。因此,以root身份调用ssh但使用gol
的私钥,只需告诉ssh私钥在哪里。我不知道您的系统,但是有可能它在这里:
/home/gol/.ssh/id_rsa
您可以告诉ssh使用哪个私钥:
ssh -i /home/gol/.ssh/id_rsa gol@remotehost '/home/scripts/script1.sh'
另外,您可以通过正确引用它来使用最初尝试的方式:
su - gol -c "ssh gol@remotehost '/home/scripts/script1.sh'"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句