I wanted to sudo to different user after ssh'ing into remote server, for this i tried the following:
cat remote-test.sh
ssh -t -t abcuser@test-server.net 'bash -s' << EOF
/tmp/test.sh
EOF
when i execute the remote-test.sh from development-server.net, I wanted to ssh to test-server.net as abcuser and then sudo as xyzuser .
cat /tmp/test.sh
echo "password" | sudo -S su - xyzuser
cd /tmp/some/directory
Can someone please advice how to pass a password while doing sudo su in a script.
Best Answer
You setup password-less ssh to localhost as user
xyzuser
forabcuser
to achieve what you're trying. You'll need to addabcuser
's public key as an authorized_key forxyzuser
.Then when you're logged in as
abcuser
, you can do:If you've blocked ssh access to
xyzuser
, allow it only through loopback. If you're on linux, see your/etc/security/access.conf
or equivalent on how to do that.