作为新用户无法SSH进入在EC2上运行的Ubunto 10.10

亲爱的EC2 / Ubuntu / SSH的领主。 请帮助我了解如何解决我的SSH问题:

我可以SSH到我的EC2实例运行Ubuntu 10.10“Maverick Meerkat”没有问题:

$ ssh -i MyEC2Key.pem [email protected] 

当我用我创build的新用户尝试同样的事情时,出现了我的问题:

 $ ssh -i MyEC2Key.pem [email protected] 

不幸的是,当试图这个我得到以下错误信息:

权限被拒绝(publickey)。


我不明白我失去了什么,对于这些东西大部分都是比较新的。 我只想让这个新用户拥有pipe理权限和完整的SSH访问权限。 这些都是我所经历的步骤,都以用户ubuntu的身份远程login,并使用vim进行编辑。 如果有人能让我知道我错过了什么,或者误解了这里,我将不胜感激。 谢谢阅读。

  • 我创build了一个名为robert的新用户
  • 我已经将该用户添加到组pipe理员
  • 我已经添加到/ etc / sudoers下面

根ALL =(ALL)ALL(该行已经存在)
罗伯特所有=(所有)所有(该行是我所加)

  • 我已将以下行添加到/ etc / ssh / sshd_config

AllowUsers罗伯特Ubuntu的根

  • 我已经重新启动了ssh守护进程
  • 我已经login为Ubuntu,并尝试在新的terminal作为罗伯特ssh回来

仍然卡住。 只是为了理智检查,是的,我可以login为罗伯特通过SSHing作为Ubuntu和使用sudo苏罗伯特,但是这不是我所需要的 – 我需要能够作为罗伯特直接SSH。

这里是debugging的东西从尝试SSH作为罗伯特与debugging标志:

 $ ssh -i -v MyEC2Key.pem [email protected] 

robmccardle $ ssh -v -i MyEC2Key.pem [email protected]
OpenSSH_5.2p1,OpenSSL 0.9.8l 2009年11月5日
debug1:读取configuration数据/ etc / ssh_config
debug1:连接到ec2-01-LALALALALALA.eu-west-1.compute.amazonaws.com [XX.XXX.XX.XXX]端口22。
debug1:build立连接。
debug1:身份文件MyEC2Key.pemtypes-1
debug1:远程协议版本2.0,远程软件版本OpenSSH_5.5p1 Debian-4ubuntu4
debug1:match:OpenSSH_5.5p1 Debian-4ubuntu4 pat OpenSSH *
debug1:启用协议2.0的兼容模式
debug1:本地版本stringSSH-2.0-OpenSSH_5.2
debug1:发送SSH2_MSG_KEXINIT
debugging1:收到SSH2_MSG_KEXINIT
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)
debug1:期待SSH2_MSG_KEX_DH_GEX_GROUP
debug1:发送了SSH2_MSG_KEX_DH_GEX_INIT
debug1:期待SSH2_MSG_KEX_DH_GEX_REPLY
debug1:主机'ec2-01-LALALALALALA.eu-west-1.compute.amazonaws.com'是已知的并且与RSA主机密钥匹配。
debug1:在/Users/robmccardle/.ssh/known_hosts:4find密钥
debug1:ssh_rsa_verify:签名正确
debug1:发送了SSH2_MSG_NEWKEYS
debug1:期待SSH2_MSG_NEWKEYS
debug1:收到SSH2_MSG_NEWKEYS
debugging1:发送了SSH2_MSG_SERVICE_REQUEST
debug1:收到SSH2_MSG_SERVICE_ACCEPT

debug1:可以继续的身份validation:publickey
debug1:下一个validation方法:publickey
debug1:尝试私钥:MyEC2Key.pem
debug1:读取完成的PEM私钥:键入RSA
debug1:可以继续的身份validation:publickey
debug1:没有更多的身份validation方法来尝试。
权限被拒绝(publickey)。

为两个帐户使用相同的密钥。 请执行下列操作

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

这只是将与您的私钥对应的公钥(MyEC2Key.pem)复制到罗伯特的账户。 这也将保持/home/robert/.ssh/authorized_keys所需的适当权限。

(请不要为拥有多个授权密钥的两个现有用户做以上几个明显的原因! – 这只是build议作为使用默认的'ubuntu'用户在EC2上设置新用户的简单解决scheme)

现在你应该可以做到以下几点:

 ssh -i MyEC2Key.pem [email protected] 

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

如果它仍然不适合你,有两种select:

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

说明可以在这里find: http : //www.ece.uci.edu/~chou/ssh-key.html

2)在EC2上,您可以允许ssh接受基于密码的身份validation(默认为禁用)。

 sudo nano /etc/ssh/sshd_config 

并修改

 PasswordAuthentication no 

 PasswordAuthentication yes 

这将允许你使用密码ssh。

好像权限让你在目录上。 确保您的/ home / user /.ssh目录的权限设置正确。

 chmod -R o-rwx ~/.ssh