在不指定用户名的情况下登录到远程服务器

Max*_*kyi 5 ssh

今天我配置了 ssh 密钥访问我的服务器。然后我测试了它们,我错误地忘记了指定用户,所以不是这样做:

ssh username@myserver.com
Run Code Online (Sandbox Code Playgroud)

我是这样做的

ssh myserver.combut 
Run Code Online (Sandbox Code Playgroud)

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

pl_*_*ock 4

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

ssh username@myserver.com
Run Code Online (Sandbox Code Playgroud)

你可以使用像:

ssh myserver.com
ssh serverip
Run Code Online (Sandbox Code Playgroud)

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

su - user1 
ssh sshserverip
Run Code Online (Sandbox Code Playgroud)

您将以user1. 如果你这样做

su - user2
ssh sshserverip
Run Code Online (Sandbox Code Playgroud)

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

ssh username@serverip 
Run Code Online (Sandbox Code Playgroud)

或者

ssh serverip -l username 
Run Code Online (Sandbox Code Playgroud)

或者

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