When I SSH to a server, the prompt sometimes displays my user and the hostname of the server:
xavier@local:~$ ssh server1
xavier@server1's password:
Sometimes all I get is Password:
xavier@local:~$ ssh server2
Password:
Which is less convenient when tunneling (difficult to know if I have to enter the password for the second server or if I need to repeat the first one because I made a mistake for instance), and also when using different usernames (did I forget to set the correct one in .ssh/config
?).
Typically I find that Debian/Ubuntu will prompt with user@hostname's password:
, whereas I see Password:
on OpenSUSE/SLES/Mac servers.
Obviously the servers are configured differently, but I couldn't find what causes this difference. How can I configure the ssh server to display the user and hostname in the prompt? Or maybe I can do it client side?
Investigating a bit further, it appears that the
user@server's password
prompt is used for password authentication, whereas thePassword:
prompt is the displayed for keyboard-interactive authentication. I wasn't aware that these two methods existed. They look pretty similar as they will typically both ask for a password.So the trick is to:
Make sure password authentication is enabled on the server. In
/etc/ssh/sshd_config
:On the client side, set
password
as the preferred methodIt is sensible to add the
keyboard-interactive
method to the list in case the server has PasswordAuthentication disabledI ended up adding the following to my
.ssh/config
:I am now getting the
user@server's password:
prompt on all hosts.