Q. How do I use ssh client program in a shell script under UNIX or Linux operating system?
A. SSH client is a program for logging into a remote machine and for executing commands on a remote machine. ssh connects and logs into the specified hostname.The user must prove his/her identity to the remote machine using one of several methods depending on the protocol version used. If command is specified, command is executed on the remote host instead of a login shell.
SSH general syntax
ssh user@hostname command
For example login into remote system called portal.nixcraft.com and find out who logged in, enter:
$ ssh admin@portal.nixcraft.com who
You can use same command in shell script. However, it will prompt for a password. To avoid password prompt you need to ssh keys based login as specified in our article for password less login. Next, you can create a sample shell script as follows:
$ vi sshscript.shType the following shell script lines:
#!/bin/bash # Linux/UNIX box with ssh key based login enabled SERVER="192.168.1.1" # SSH User name USR="admin" OUT="out.txt" ssh $USR@$host w > $OUT
Save and close the file. Type the following command to execute the script:
$ chmod +x sshscript.sh
$ ./sshscript.sh
You can see output of script with cat command:
$ cat out.txt
See more complex example in our shell script directory.
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- My 10 UNIX Command Line Mistakes
- Linux: 20 Iptables Examples For New SysAdmins

- 25 PHP Security Best Practices For Sys Admins
- The Novice Guide To Buying A Linux Laptop
- 10 Greatest Open Source Software Of 2009
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
Facebook it - Tweet it - Print it -


{ 5 comments… read them below or add one }
When I try to Authenticate via SSH using a Script , I get
The script is the same :
Pseudo-terminal will not be allocated because stdin
is not a terminal.
I tried using -t and -T switch both on and off.
Suggest if you have any better Ideas
Many Thanks
Sriram
You can try replacing ” ssh $USR@$host w > $OUT” with ” ssh -t -t -l $USR $host w > $OUT”
i want to know whether i can login to a sever using SSH by hardcoding the user name and password in my unix script.
expecting your replay soon.
Yes, you can login to server using SSH by hardcoding
. For this you have to use php.
Php provides expect module to ssh login.
@ krishna kumar
@ Nilesh
PHP isn’t necessary — you can generate public/private keys per user/host you wish to connect to and avoid passwords altogether, allowing you to fully automate your ssh connections.
Google ‘ssh without password’ and you’ll find plenty of tutorials on this process.