阿里云代理商-阿里云服务器-阿里云数据库-重庆典名科技

使用阿里云SSH密钥无法登录阿里云服务器

发布时间: 2020-03-05 11:17:30文章作者: 网站编辑阅读量: 962

  问题描述:

  使用阿里云SSH密钥对免密登陆服务器时有很多种情况都会导致登陆失败,可能原因有:

  阿里云ssh服务器没有开启密钥登陆功能,使用控制台生成的密钥对没有绑定到指定阿里云ECS服务器,或者绑定了但是没有重启正在运行的阿里云服务器,也可能是阿里云服务器ssh目录及其下面的文件权限配置不正确导致的,另外不正确的登陆方式可能导致使用密钥登陆失败,下面就针对以上问题做出具体的解决方案

  问题一:阿里云服务器没有开启密钥登陆功能导致登陆失败

  1. 首先通过远程连接登录阿里云Linux实例。

  2. 登录Linux后,如下图所示,使用命令vim /etc/ssh/sshd_config进入配置文件,找到配置文件中的PubkeyAuthentication选项应该为注释或者为yes不能为no(该选项默认是注释并开启的)如果发现该选项参数为no则需要更改为yes,另外AuthorizedKeysFile选项需要与下图保持一致

  

  问题二:使用阿里云控制台密钥对没有绑定到指定阿里云ECS服务器

  1. 如下图所示创建密钥对时会提示下载密钥用来免密登陆,另外需要点击右侧栏“绑定密钥对”将密钥绑定到指定服务器后并重启服务器才能生效(登录ECS管理控制台。在左侧导航栏,单击网络与安全 > 密钥对。在顶部状态栏左上角处,选择地域。找到需要操作的密钥对,在操作列中,单击绑定密钥对。在选择ECS实例栏中,选中需要绑定该密钥对的ECS实例名称,单击>图标,移入已选择栏中。如果选择ECS实例栏中的ECS实例名称显示为灰色,表示该实例为Windows实例,不支持SSH密钥对。)

  

  说明:如果ECS实例处于运行中(Running)状态,重启实例使操作生效:

  在左侧导航栏,单击实例与镜像 > 实例。

  找到需要操作的实例,在操作列中,选择更多 > 实例状态 > 重启。

  在重启实例弹窗中,单击确定。

  说明:如果您在绑定密钥对之后想使用密码方式登录实例,可以通过重置实例密码实现。如果在绑定密钥对之后重置了实例密码,使用密钥对方式和使用密码方式均能登录实例。

  问题三:ssh目录和authorized_keys文件权限配置不正确

  1.如下图所示使用ls -al /root命令查看.ssh目录权限是否为700即标记处所示,如果不为700需要使用“chmod 700 .ssh”命令将目录权限改为700 ,另外需要使用lsattr命令核实.ssh目录下的authorized_keys文件是否被增加了i属性,下图标记处为正常,如果有需要使用chattr -i命令去掉该属性,同样要确保authorized_keys文件权限为600,如果不为600需要修改为600,下图标记处为正常权限

  

  问题四:使用密钥对的登陆方式不正确导致无法登陆阿里云服务器

  1. 使用密钥对登陆服务器,如果使用的是控制台生成的密钥对则可以直接如下图所示在命令行中使用“ssh -i 私钥 用户名@服务器公网IP”命令登陆服务器,如果使用模拟终端登陆时需要选择从控制台下载的.pem密钥文件。

  

  2. 如果是使用自己生成的密钥对文件则需要将生成的公钥文件内容导入到.ssh目录下的authorized_keys文件中,然后在使用1步骤免密登陆阿里云服务器即可。

  说明:如果您的使用的是阿里云密钥对,且密钥对由ECS生成,那么在首次生成密钥对时,请务必下载并妥善保存私钥。当该密钥对绑定某台实例时,如果没有私钥,您将无法登录实例。

联系客服免费领取更多阿里云产品新购、续费升级折扣,叠加官网活动折上折更优惠