SSH访问而不提及远程服务器的用户
SSH access without mentioning user of remote server
我有一个 Ubuntu 服务器有两个用户:user1 和 user2。我在本地生成了一个 SSH 密钥,并将 public 部分复制到两个用户的 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).
请帮我解决这个问题。
如果您不指定登录用户名,ssh 将尝试使用您当前的用户名登录实例:在您的情况下,通过查看您的问题,这将是 srimanth.
为此,srimanth 用户帐户必须首先存在于服务器上,或者 srimanth 用户 SSH 配置文件中实例的默认用户登录必须按照 this answer from Learath2 to this question 中的描述进行定义。
请参阅 Adding and Deleting Users 在 Ubuntu 服务器中创建用户帐户。
SSH 正在尝试使用 srimanth 用户名登录,但由于它在远程计算机上不存在,所以失败了。您必须提供远程有效用户名,否则您将无法登录到远程机器。
因为您已经为两个用户生成了密钥并将其添加到 authorized_keys 文件中,所以当您使用他们中的任何一个登录时,ssh 能够使用您的私钥对您进行身份验证。
如果你不想在登录时指定用户名,你有两个选择(它仍然会使用用户名登录,但你可以避免在命令中指定它):
将 srimanth 用户添加到远程服务器并将 public 密钥添加到其 authorized_keys 文件,以便在您以 srimanth 身份登录时从您的计算机上尝试SSH,它使用相同的用户名并让您登录到远程机器。
在您的 SSH 配置中添加一个条目,以便在您连接到特定主机时使用特定的用户名:
Host dev
HostName SERVER
Port 22
User DEFAULTUSER
我有一个 Ubuntu 服务器有两个用户:user1 和 user2。我在本地生成了一个 SSH 密钥,并将 public 部分复制到两个用户的 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).
请帮我解决这个问题。
如果您不指定登录用户名,ssh 将尝试使用您当前的用户名登录实例:在您的情况下,通过查看您的问题,这将是 srimanth.
为此,srimanth 用户帐户必须首先存在于服务器上,或者 srimanth 用户 SSH 配置文件中实例的默认用户登录必须按照 this answer from Learath2 to this question 中的描述进行定义。
请参阅 Adding and Deleting Users 在 Ubuntu 服务器中创建用户帐户。
SSH 正在尝试使用 srimanth 用户名登录,但由于它在远程计算机上不存在,所以失败了。您必须提供远程有效用户名,否则您将无法登录到远程机器。
因为您已经为两个用户生成了密钥并将其添加到 authorized_keys 文件中,所以当您使用他们中的任何一个登录时,ssh 能够使用您的私钥对您进行身份验证。
如果你不想在登录时指定用户名,你有两个选择(它仍然会使用用户名登录,但你可以避免在命令中指定它):
将 srimanth 用户添加到远程服务器并将 public 密钥添加到其 authorized_keys 文件,以便在您以 srimanth 身份登录时从您的计算机上尝试SSH,它使用相同的用户名并让您登录到远程机器。
在您的 SSH 配置中添加一个条目,以便在您连接到特定主机时使用特定的用户名:
Host dev HostName SERVER Port 22 User DEFAULTUSER