I’m trying to change my user to one that doesn’t need password to run ssh instructions and then do exactly that, run an ssh instruction. What I have now is:
sudo su - testUser ssh testUser@server2 'cat /home/randomUser/hola.txt'
But I’m getting the answer:
/usr/bin/ssh: /usr/bin/ssh: cannot execute binary file
if I put the instructions in a different file called testit like this:
ssh testUser@server2 cat /home/randomUser/hola.txt
and I run:
sudo su - testUser < testit
it works!, but I need to use the one line instruction, someone know what should I change to make it work?
Advertisement
Answer
sudo su - testUser
why don’t you use just sudo -u testUser
as it is supposed to be used?
But anyway, manual pages for the tools you are using is a good start. For sudo
:
sudo [...] [command]
This looks good and fits into your example.
For su
:
su [options] [username]
Ola … su
does not have any argument command
, unless you provide also -c
switch, which is written also in the manual page. And it is [option]
, so it should come in front of [username]
! Something like this should do the job:
sudo su -l -c "ssh testUser@server2 'cat /home/randomUser/hola.txt'" testUser
but as I already mentioned, it can be significantly simplified by using sudo
only:
sudo -i -u testUser "ssh testUser@server2 'cat /home/randomUser/hola.txt'"