不指定用户名即可登录到远程服务器

不指定用户名即可登录到远程服务器

今天我配置了 ssh 密钥对我服务器的访问。然后我测试了它们,却不小心忘记指定用户,因此我不应该这样做:

ssh [email protected]

我就是这样做的

ssh myserver.combut 

我已成功以用户名登录。这怎么可能呢?ssh 服务器如何知道以哪个用户身份登录?如果是密钥,那么我可能会将同一个密钥添加到多个用户,在这种情况下会发生什么?

答案1

如果您系统中有相同的用户,并且您想要登录,那么无需使用username登录,它将采用默认系统用户。例如:您的一个系统(客户端)有用户test,并且您的 ssh 服务器也有用户,test那么无需提及用户名,例如:

ssh [email protected]

你可以使用如下方式:

ssh myserver.com
ssh serverip

确保在执行 ssh 时,您已在客户端系统中以该用户身份登录。是的,您可以为多个用户执行此操作,例如您的客户端系统有用户user1user2等等user3。那么您还必须在 ssh 服务器中创建该用户。然后,如果您想登录,请执行以下操作:

su - user1 
ssh sshserverip

您将以user1. 身份登录,如果您这样做

su - user2
ssh sshserverip

您将以 身份登录user2。如果您想以其他用户身份登录,则必须输入用户名,否则系统会混淆哪个用户必须登录。

ssh username@serverip 

或者

ssh serverip -l username 

或者

如果您想进行基于密钥的身份验证,则必须添加所有用户的公钥authorized_keys。有关更多信息,请访问Ubuntu 文档

答案2

如果您没有提及用户名,ssh将使用您当前登录的用户名。

所以:

username@client$ ssh [email protected]

类似于:

username@client$ ssh myserver.com

所有其他参数(如密钥、密码)将以通常方式使用。

相关内容