How to enter ssh password using bash?

BashSsh

Bash Problem Overview


Everyday I am connecting to a server through ssh. I go through this routine:

IC001:Desktop user$ ssh user@my.server.com
user@my.server.com's password: 

Last login: Tue Jun  4 10:09:01 2013 from 0.0.0.0
$

I would like to automate this process and create a bash script to do it for me. I don't care about security and okay to store my password openly in the script. I am also okay for it to get typed openly on the screen while the script gets executed. So I've created this:

#!/bin/bash          
ssh [email protected]
echo mypassword

But it doesn't work. I've also tried send instead of echo, but it also didn't work. Please advise if it is possible to do.

Bash Solutions


Solution 1 - Bash

Double check if you are not able to use keys.

Otherwise use expect:

#!/usr/bin/expect -f
spawn ssh user@my.server.com
expect "assword:"
send "mypassword\r"
interact

Solution 2 - Bash

Create a new keypair: (go with the defaults)

ssh-keygen

Copy the public key to the server: (password for the last time)

ssh-copy-id user@my.server.com

From now on the server should recognize your key and not ask you for the password anymore:

ssh user@my.server.com

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionProstakView Question on Stackoverflow
Solution 1 - BashmichasView Answer on Stackoverflow
Solution 2 - BashmichasView Answer on Stackoverflow