如何在SSHD密码提示中显示用户@主机名

当我SSH服务器,提示有时会显示我的用户和服务器的主机名:

xavier@local:~$ ssh server1 xavier@server1's password: 

有时我得到的只是Password:

 xavier@local:~$ ssh server2 Password: 

隧道时不太方便(很难知道是否必须input第二台服务器的密码,或者因为我犯了一个错误而需要重复第一台服务器的密码),而且在使用不同的用户名时(我忘记了在.ssh/config设置正确的)。

通常,我发现Debian / Ubuntu会提示user@hostname's password: ,而我看到Password:在OpenSUSE / SLES / Mac服务器上。

显然,服务器configuration不同,但我找不到是什么原因造成这种差异。 如何configurationssh服务器在提示符中显示用户和主机名? 或者,也许我可以做客户端?

进一步调查,看起来user@server's password提示用于密码authentication,而Password:提示用于键盘交互authentication。 我不知道这两种方法存在。 他们看起来非常相似,因为他们通常会要求input密码 。

所以诀窍是:

  1. 确保在服务器上启用密码validation。 在/etc/ssh/sshd_config

     PasswordAuthentication yes 
  2. 在客户端,将password设置为首选方法

     ssh -o PreferredAuthentications=password server2 

    在服务器禁用PasswordAuthentication的情况下,将keyboard-interactive方法添加到列表中是明智的

     ssh -o PreferredAuthentications=password,keyboard-interactive server2 

    我结束了以下添加到我的.ssh/config

     Host * ServerAliveInterval 120 VerifyHostKeyDNS yes PreferredAuthentications publickey,password,keyboard-interactive 

我现在正在获取所有主机上的user@server's password:提示符。