Execute ssh command with additional terminal command to any remote user not working script

Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Execute ssh command with additional terminal command to any remote user not working script
# 1  
Old 02-23-2018
Execute ssh command with additional terminal command to any remote user not working script

Hello i am having an issue with bash script and this is the code

now=$(cat hosts1.txt | awk '{print $2;}')
while read n ;do
ssh root@$now 'useradd test1; echo -e "test1\ntest1" | passwd test1 &&  echo "test1  ALL=(ALL:ALL) ALL" >> /etc/sudoers'

When i execute only part with cat, it returns me IP address.
But when I put a command, nothing happend, it not returning me to write something, just like it is freeze, i must put ctrl+c to get job quit.
# 2  
Old 02-23-2018
It is reading from stdin, i.e. your terminal, and thus doesn't freeze but waits for your input. On top, there's a done missing for your while loop.
# 3  
Old 02-23-2018
I added but I am forgot to copy. This is whole

now=$(cat hosts1.txt | awk '{print $2;}')
while read n; do

ssh root@$now 'useradd test1; echo -e "test1\ntest1" | passwd test1 &&  echo "test1  ALL=(ALL:ALL) ALL" >> /etc/sudoers'


How can i fix this because it is easier to do it like this and do not connect to all commands via ssh.
# 4  
Old 02-23-2018
Originally Posted by tomislav91
. . .
How can i fix this . . .
If we only knew what you're up to. You read something from stdin into a variable n but then don't use that anywhere.
And, I'm afraid having passwd read from a pipe won't work as it is designed for interactive input.
# 5  
Old 02-23-2018
I am up to add a new user and make this user admin within my remote machines.
# 6  
Old 02-23-2018
passwd does not work that way. It will not read passwords from anything but a terminal.
This User Gave Thanks to Corona688 For This Post:
# 7  
Old 02-23-2018
So, it sounds like you want something structured more like:
while read junk now junk
	ssh root@$now 'useradd test1; echo -e "test1\ntest1" | passwd test1 &&  echo "test1  ALL=(ALL:ALL) ALL" >> /etc/sudoers'
done < hosts1.txt

but, as RudiC has already said, that isn't the way the passwd utility reads passwords (it reads from its controlling terminal; not from standard input). Therefore, you're going to have to find something other than:
echo -e "test1\ntest1" | passwd test1

to set the user's password.

Does useradd on your system have an option to set a password as a side-effect of creating the account? (This is one of the many reasons why you should always tell us what operating system you're using when you start a new thread in this forum.)
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Execute command on remote host via ssh

How should i make the following code working #!/bin/bash INPUTFILE="test.txt" while read STRING; do IP=`host -t A $STRING | awk '{print $NF}'` HOSTNAME=`ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no $IP "hostname"` echo $HOSTNAME > out.txt done < $INPUTFILE At this moment while... (3 Replies)
Discussion started by: urello
3 Replies

2. Shell Programming and Scripting

bash script to execute a command remote servers using ssh

Hello, I am running into few issues, please suggest me what I am missing. I am running this script on a linux host. Main idea of this script is to, login to each host via ssh and get uid of user, service user that I trying to run this script, has already deployed ssh keys and provide sudo... (8 Replies)
Discussion started by: bobby320
8 Replies

3. UNIX for Dummies Questions & Answers

ssh command to execute shell script in another server

ssh -q <hostname> /opt/tcs/satish/tst.ksh ssh -q <anotherserver> /opt/tcs/satish/tst.ksh tst.ksh has "nohup <command> & " when i execute below script , its throwing error as nohup can not be found ssh -q <anotherserver> /opt/tcs/satish/tst.ksh > log & can someone let me... (5 Replies)
Discussion started by: only4satish
5 Replies

4. Shell Programming and Scripting

SSH execute remote command (with jump)

Hi all, I am facing the following issue: Host A should execute a remote command (say pwd) on host B2. B2 is not directly reacheable but you have to connect from a to B1, then from B1 you can execute the command ssh user@B2 pwd. B1 and B2 are directly connected: A => B1 => B2 | ... (3 Replies)
Discussion started by: Evan
3 Replies

5. Shell Programming and Scripting

root user command in shell script execute as normal user

Hi All I have written one shell script for GPRS route add is given below named GPRSRouteSet.sh URL="www.google.com" VBURL="" echo "Setting route for $URL for GPRS" URL_Address=`nslookup $URL|grep Address:|grep -v "#"|awk -F " " '{print $2}'|head -1` echo "Executing ... (3 Replies)
Discussion started by: mnmonu
3 Replies

6. Shell Programming and Scripting

ssh to remote host and execute command

Hi, could anyone please tell me how to ssh to remote host foo and execute command on it and print the result on local host? Thanks, Paresh (1 Reply)
Discussion started by: masaniparesh
1 Replies

7. Shell Programming and Scripting

How to execute remote ssh command - Perl and CGI

Hi, I am having nightmare issue-ing remote ssh command from a CGI perl script. It just won't run on debug message: It says permission denied. Can I even do this? as the apache server running under DAEMON account probably can't execute it? Is this the case of what's going on? Here is my... (3 Replies)
Discussion started by: Dabheeruz
3 Replies

8. Shell Programming and Scripting

shell script to execute user command

I don't know why the following shell script doesn't work. Could you please help me out? #!/usr/bin/ksh test="cal > /tmp/tmp.txt 2>&1" $test I know it will work for the following format: #!/usr/bin/ksh cal > /tmp/tmp.txt 2>&1 However, I need to get the command from the user in... (1 Reply)
Discussion started by: redtiger
1 Replies

9. Shell Programming and Scripting

Execute command from terminal on remote machine

Hi All, I want to execute some commands on unix machine from the mac machne. I have two options for doing so, I am confused which is the best way of doing. Here are two options. Requirement: Execute command on the remote server machine. Commands to be executed itself contain arguments to be... (0 Replies)
Discussion started by: Ranu
0 Replies

10. UNIX for Dummies Questions & Answers

Plz Help : How to use write command to execute command on some other terminal

Hi Group , I m trying to execute commands on some other system using write command but inspite of executing the commands they r passed as simple messages. - i m writing >write user-id ! ls o ctrl-d inspite of executing the command ls,other terminal shows ! ls. Thnx in advance. (2 Replies)
Discussion started by: Aashish
2 Replies
Login or Register to Ask a Question

Featured Tech Videos