【发布时间】:2019-03-14 13:16:51
【问题描述】:
我的用户在根组中。我无法以 root 身份 ssh 到服务器,因为它说 Permission denied, please try again. 我通常做的是我作为我的用户 ssh,一旦我登录,我输入 sudo su 并提供我的用户密码成为 root。
我想自动化我的部分工作,所以我想编写一个 bash 脚本,它会以我的用户身份 ssh,切换到 root,然后调用命令集。
到目前为止,我使用了以下脚本,但在不询问用户密码的情况下我无法切换到 root 用户:
while read p; do
p=$(echo $p|tr -d '\r')
sshpass -p "myPasswd" ssh -T -o StrictHostKeyChecking=no myUser@remoteServer << EOT
cd /var/log/jboss/ #here I am getting 'permission denied' message as only root has access
exit
EOT
done < $nodes
我也试过了:
sshpass -p "myPasswd" ssh -tt -o StrictHostKeyChecking=no myUser@remoteServer 'cd /var/log/jboss/'
但我收到了相同的 permission denied 错误消息
【问题讨论】:
-
如果你有root权限,你可以在远程主机上配置
sudo,让你用sudo运行某些命令不需要需要密码。 -
您还应该设置公钥身份验证,这样您就不需要在脚本中以明文形式公开您的密码。
-
检查 sudoers 配置的 NOPASSWD 选项。