今天我配置了 ssh 密钥访问我的服务器。然后我测试了它们,我错误地忘记了指定用户,所以不是这样做:
ssh username@myserver.com
Run Code Online (Sandbox Code Playgroud)
我是这样做的
ssh myserver.combut
Run Code Online (Sandbox Code Playgroud)
我以用户名成功登录。这怎么可能?ssh 服务器如何知道我在哪个用户下登录?如果它是一个密钥,那么我可能会将相同的密钥添加给多个用户,在这种情况下会发生什么?
如果您想要登录的系统中有相同的用户,则无需使用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 时您已以该用户身份登录到客户端系统中。是的,您可以为多个用户执行操作,例如您的客户端系统有用户user1等user2,user3然后您还必须在 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 文档