无法以新用户身份通过​​ SSH 进入在 EC2 上运行的 Ubuntu 10.10

无法以新用户身份通过​​ SSH 进入在 EC2 上运行的 Ubuntu 10.10

请帮助我了解如何解决我的 SSH 问题:

我可以通过 SSH 毫无问题地进入运行 Ubuntu 10.10‘Maverick Meerkat’的 EC2 实例:

$ ssh -i MyEC2Key.pem [email protected]

当我对我创建的新用户尝试执行同样的事情时出现了问题:

$ ssh -i MyEC2Key.pem [email protected]

不幸的是,当我尝试这个时,我收到以下错误消息:

权限被拒绝(公钥)。


我不明白我遗漏了什么,而且对大多数这些东西都比较陌生。我只希望这个新用户拥有管理员权限和完全 SSH 访问权限。这些是我经历过的步骤,全部以用户 ubuntu 的身份远程登录并使用 vim 进行编辑。如果有人能告诉我我遗漏了什么或误解了什么,我将不胜感激。

  • 我创建了一个名为 robert 的新用户
  • 我已将该用户添加到管理员组
  • 我已将以下内容添加到/etc/sudoers

    root    ALL=(ALL) ALL   (that line was already there)  
    robert ALL=(ALL) ALL    (that line was what I added)
    
  • 我已将以下行添加到/etc/ssh/sshd_config

    AllowUsers robert ubuntu root
    
  • 我已经重新启动了 ssh 守护进程

  • 我已经以 ubuntu 身份注销,并尝试在新的终端中以 robert 身份重新登录

仍然卡住。只是为了检查一下,是的,我可以通过 SSH 以 ubuntu 身份登录并使用 sudo su robert 以 robert 身份登录,但这不是我所需要的 - 我需要能够直接以 robert 身份通过 SSH 登录。

以下是尝试以 robert 身份使用调试标志通过 SSH 进行调试的内容:

$ ssh -v -i MyEC2Key.pem [email protected]  
OpenSSH_5.2p1, OpenSSL 0.9.8l 5 Nov 2009  
debug1: Reading configuration data /etc/ssh_config  
debug1: Connecting to ec2-01-LALALALALALA.eu-west-1.compute.amazonaws.com [XX.XXX.XX.XXX] port 22.  
debug1: Connection established.  
debug1: identity file MyEC2Key.pem type -1  
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-4ubuntu4  
debug1: match: OpenSSH_5.5p1 Debian-4ubuntu4 pat OpenSSH*  
debug1: Enabling compatibility mode for protocol 2.0  
debug1: Local version string SSH-2.0-OpenSSH_5.2  
debug1: SSH2_MSG_KEXINIT sent  
debug1: SSH2_MSG_KEXINIT received  
debug1: kex: server->client aes128-ctr hmac-md5 none  
debug1: kex: client->server aes128-ctr hmac-md5 none  
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent  
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP  
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent  
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY  
debug1: Host 'ec2-01-LALALALALALA.eu-west-1.compute.amazonaws.com' is known and matches the RSA host key.  
debug1: Found key in /Users/robmccardle/.ssh/known_hosts:4  
debug1: ssh_rsa_verify: signature correct  
debug1: SSH2_MSG_NEWKEYS sent  
debug1: expecting SSH2_MSG_NEWKEYS  
debug1: SSH2_MSG_NEWKEYS received  
debug1: SSH2_MSG_SERVICE_REQUEST sent  
debug1: SSH2_MSG_SERVICE_ACCEPT received  
debug1: Authentications that can continue: publickey  
debug1: Next authentication method: publickey  
debug1: Trying private key: MyEC2Key.pem  
debug1: read PEM private key done: type RSA  
debug1: Authentications that can continue: publickey  
debug1: No more authentication methods to try.  
Permission denied (publickey).  

答案1

要对两个帐户使用相同的密钥,请执行以下操作

sudo cp -r /home/ubuntu/.ssh /home/robert/
cd /home/robert
sudo chown -R robert:robert .ssh

这只会将与您的私钥 (MyEC2Key.pem) 对应的公钥复制到 robert 的帐户。这还会保留 /home/robert/.ssh/authorized_keys 所需的适当权限。

(出于几个显而易见的原因,请不要对具有多个授权密钥的两个现有用户执行上述操作!——它仅建议作为使用默认“ubuntu”用户在 EC2 上设置新用户的简单解决方案)

现在您应该能够执行以下操作:

ssh -i MyEC2Key.pem [email protected]

如果这不起作用,请确保您具有正确的限制权限(比较 /home/ubuntu/.ssh 和 /home/robert/.ssh 以及 authorized_keys 文件的权限)

如果仍然不起作用,还有两种选择:

1)在 robert 的本地机器上生成一个新的密钥对,并将公钥添加到 /home/robert/.ssh/authorized_keys (在 EC2 实例上)

您可以在此处找到说明: http://www.ece.uci.edu/~chou/ssh-key.html

2)在 EC2 上,您可以允许 ssh 接受基于密码的身份验证(默认情况下禁用)。

sudo nano /etc/ssh/sshd_config

并修改

PasswordAuthentication no

PasswordAuthentication yes

这将允许您使用密码进行 ssh。

答案2

似乎权限允许您进入目录。请确保您的 /home/ 上的权限设置正确用户/.ssh 目录。

chmod -R o-rwx ~/.ssh

相关内容