没有提到远程服务器用户的SSH访问

时间:2015-03-20 04:38:06

标签: authentication ubuntu ssh

我有一个有两个用户的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).

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

SSH正在尝试使用srimanth用户名登录,因为它在远程计算机上不存在,所以它失败了。您必须提供远程有效用户名,否则您将无法登录远程计算机。

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

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

  1. 将srimanth用户添加到远程服务器并将公钥添加到其authorized_keys文件中,以便当您以srimanth身份登录时从您的计算机上尝试SSH,它使用相同的用户名并允许您登录到远程机器。

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

  3. Host dev
        HostName SERVER
        Port 22
        User DEFAULTUSER
    

答案 1 :(得分:0)

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

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

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