Ubuntu SSH登录显示 Access Denied (: public key) 的解决方案,尤其适用于EC2和Nectar云

1.问题表现:

在使用putty或者x2go(尤其是后者)进行ssh无密码登录时,不断提醒输入私钥密码,而且输入一般三次之后,提示含有 public key字样的登录错误。

2.原因:

潜在的原因包括用户名错误、私钥错误、IP地址错误等,都比较好解决,唯一难处理的是由于用户公钥permission修改引起的错误。

Linux规定(尤其是云服务器提供商规定)每个用户的SSH公钥的owner不是其本人时,该公钥失效,因此如果存储在ubuntu上的用户SSH公钥的访问权限和所有者被误修改了,用户即使拿着正确的私钥,也无法实现无密码登录。

3.解决方案:

(1)在云服务器的管理界面,点击Instance(实例),在最右侧弹出式菜单中选择“Console”(控制台)

(2)进入到控制台中,可以看到Instance还在运行着(一般是图形化的登录界面),点击restart重启一下,或者利用页面上提供的" send Ctrl Alt Del"(发送Ctrl Alt Del)键让机器重启。

(3)重启过程中,继续按" send Ctrl Alt Del"(发送Ctrl Alt Del)键,并按住左侧Shift,可以进入到下图屏幕所示的界面。如果没有看到这个界面而是直接启动了,则继续重新启动,直到能够看到为止。

    能够现场控制的电脑,可以略过这个环节,直接密码登录。

 

(4)按键盘 e 键,进入到下图的屏幕

(5)这个屏幕中的启动信息是可以编辑的。按箭头控制光标的位置,将上图中的 console=tty0,115200n8 字样删除(上图中我已经删除了),并将 ro 字样删除。保留第一个console = tty0,并在此行的末尾加上 single。最终编辑完成的效果如上图所示。

(6)按 Ctrl+x 重新引导系统。会出现下图的界面。

(7)此时已经进入到可以输入命令的截断,为ubuntu SSH用户重设权限。假设为用户名称为ubuntu,则输入

sudo  chown  -R  ubuntu:ubuntu   /home/ubuntu/.ssh

sudo  chmod  -R  700 /home/ubuntu/.ssh

sudo  chmod  -R  600  /home/ubuntu/.ssh/authorized_keys

ls一下看看.ssh文件夹下是否含有 private.key,如果含有,则还需要:

sudo  chmod  -R  400  /home/ubuntu/.ssh/private.key

(8)重新启动ubuntu即可。

4.X2Go SSH总是提示输入密码的问题(二)

X2Go还有一种情况下会提示输入私钥密码,而且不管如何输入都无法连接,这个的解决方案是在X2Go中不要指定私钥,而是另外启动一个Pageant(X2Go默认一起安装),在Pageant中指定私钥。 

在X2Go中仅指定服务器的IP地址、端口、默认登录名、GUI类型等基本信息,并且勾选“Try auto login (via SSH Agent or default SSH key)” 。注意私钥部分(Use RSA/DSA key for ssh connection)一定要留空。我的ubuntu安装了LXDE,你需要根据自己服务器的情况选择对应的session type。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值