Is there a way to log into a machine using SSH without password?

1

I know ssh is to create a secure shell connection to a machine, and we call ssh username@ip_address to login the machine.

Is there a way that I won't need to enter the password when connecting via SSH, or let's say SCP, or a run a command using SSH on a remote machine?

I know there are ssh-keys, which allow particular users to login without entering passwords.

Is there any other way to achieve so, which doesn't involve keys? Like some change in the ssh configuration?

Kumar Alok

Posted 2011-11-04T17:49:38.547

Reputation: 1 153

2Why are you opposed to using keys? That's the obvious solution, that's been in use and is tested and works. – Rob – 2011-11-08T17:36:19.687

Answers

3

Key-based authentication is the way to go. Not only is it easier than password auth when configured, but it is much more secure and is easily integrated into automated scripts. There is tons of literature out there on the subject -- to get you started:

https://hkn.eecs.berkeley.edu/~dhsu/ssh_public_key_howto.html

Garrett

Posted 2011-11-04T17:49:38.547

Reputation: 4 039

2

One less-common method is to authenticate via kerberos. If all your machines are in the same kerberos domain, then SSH can get your authentication information via GSSAPI from the kerberos subsystem.

The setup required is pretty complex though. This is certainly not something that you would choose because it is easier then key-based authentication.

On many systems SSH uses PAM for authentication. As such, there may be other methods you can used for authentication as well. Perhaps RSA tokens and so on.

Zoredache

Posted 2011-11-04T17:49:38.547

Reputation: 18 453

1

Consider using "host-based authentication" (.rhosts)

Ex Umbris

Posted 2011-11-04T17:49:38.547

Reputation: 928

Can yo elaborate on how that works please? – slhck – 2011-11-04T23:30:32.050

1

The SSH protocol is meant to have an authentication of some sort. However, there are few things you can do to get around it.

  • Use a password like normal.
  • Set up an RSA SSH Key on the user machines that want to use your server.
  • Set up your server with a .rhosts or an hosts.equiv file so that it will expect requests from your user machines.
  • Use an auto-typer to enter your passwords for you. There are Bash, Batch, and GUI programs out there, and some system adminstrators roll that way.

JonathanEyre

Posted 2011-11-04T17:49:38.547

Reputation: 85

0

sshpass automates entering in a password for ssh.

Sshpass is a tool for non-interactivly performing password authentication with SSH's so called "interactive keyboard password authentication". Most user should use SSH's more secure public key authentiaction instead.

ephemient

Posted 2011-11-04T17:49:38.547

Reputation: 20 750