0

I want to write one shell script like

command1    
ssh vivek@remotehost 
    fire command on remote host

Now I have password in pass.txt . But when I change stdin with file. It is not reading password from file.

script.sh < password.txt 

It is prompting for the password in place of reading password from the file. What I am doing wrong ?

Second problem is that shell script don't shows the command fired. Is there a way , I can show fired command from it ?

Note : I don't have key based access on remote system. I can only use password based login for ssh.

3
  • Do you have remote ssh server deliberately set up to deny key-based authorization, or you can't write to $HOME/.ssh directory? That's the only 2 ways I can think of why you can't use keys... Commented Jun 1, 2011 at 7:05
  • I don't have permission to write in $HOME/.ssh . Commented Jun 1, 2011 at 9:06
  • possible duplicate of Way to automatically enter in shell password? Commented Oct 3, 2013 at 14:55

3 Answers 3

2

You can use ssh-agent or expect (the programing language) to do this.

Sign up to request clarification or add additional context in comments.

Comments

1

OpenSSH ssh does not reads the password from stdin but from /dev/tty. That's why you have to use Expect or some other similar tool to automate it.

plink is another client, also available for Linux/Unix that accepts the password as a parameter on the command line... though that has some ugly security implications.

Comments

1

Okay, just to mention yet another option: sshpass is a tool developed for exactly the task of "fooling" regular openssh client to accept password non-interactively.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.