【问题标题】:SSH access without mentioning user of remote serverSSH访问,不提及远程服务器的用户
【发布时间】:2015-05-23 10:47:06
【问题描述】:

我有一个 Ubuntu 服务器,有两个用户:user1 和 user2。我在本地生成了一个 SSH 密钥并将公共部分复制到两个用户的 authorized_keys 文件中。我能够以两个用户的身份登录:

srimanth@local:~$ ssh user1@server
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.16.0-31-generic x86_64)
...
Last login: Fri Mar 20 04:11:08 2015 from A.B.C.D
user1@server:~$

srimanth@local:~$ ssh user2@server
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.16.0-31-generic x86_64)
...
Last login: Thu Mar 19 22:45:26 2015 from A.B.C.D
user2@server:~$

但是,如果我不提用户名认证失败:

srimanth@local:~$ ssh -v server
...
debug1: Connection established.
debug1: identity file /home/srimanth/.ssh/id_rsa type -1
...
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: srimanth@local
debug1: Trying private key: /home/srimanth/.ssh/id_rsa
...
debug1: No more authentication methods to try.
Permission denied (publickey).

请帮我解决这个问题。

【问题讨论】:

标签: authentication ubuntu ssh


【解决方案1】:

SSH 尝试使用 srimanth 用户名登录,但由于它在远程计算机上不存在,因此失败。您必须提供远程有效的用户名,否则您将无法登录远程计算机。

由于您已为两个用户生成密钥并将其添加到 authorized_keys 文件中,当您使用其中任何一个用户登录时,ssh 能够使用您的私钥对您进行身份验证。

如果你不想在登录时指定用户名,你有两个选择(它仍然会使用用户名登录,但你可以避免在命令中指定它):

  1. 将 srimanth 用户添加到远程服务器并将公钥添加到其 authorized_keys 文件中,这样当您以 srimanth 身份登录并尝试 SSH 时,它会使用相同的用户名并让您登录到远程机器。

  2. 在您的 SSH 配置中添加一个条目,以便在您连接到特定主机时使用特定用户名:

主机开发 主机名服务器 端口 22 用户 DEFAULTUSER

【讨论】:

  • 谢谢你 :)。我添加了一个名为“srimanth”的 unix 用户。现在我可以完美登录了。
【解决方案2】:

如果您未指定登录用户名,ssh 将尝试使用您当前的用户名登录实例:在您的情况下,通过查看您的问题,这将是 srimanth

为此,srimanth 用户帐户必须首先存在于服务器上,或者 srimanth 用户 SSH 配置文件中的实例的默认用户登录必须按照 this answer 从 Learath2 到 this question 中的描述进行定义。

请参阅Adding and Deleting Users 在 Ubuntu 服务器中创建用户帐户。

【讨论】:

  • 谢谢你 :) 你的回答真的很有帮助,很容易解决问题。
猜你喜欢
  • 2020-10-29
  • 2015-10-06
  • 2019-03-18
  • 1970-01-01
  • 1970-01-01
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
  • 2017-04-21
相关资源
最近更新 更多