问题:
今天在配置SSH免密登录连接自己的阿里云服务器,在将RSA加密生成的公钥放到服务器后,用Xshell连接服务,出现所选的用户密钥未在远程主机上注册这样的提示,一时懵逼,不知所措,后面终于找到了问题所在,此次笔记记录解决问题的过程
一配置流程
1.使用Xshell工具RSA加密的方式生成秘钥对:
如下图所示:在工具选项内选择-"新建用户生成密钥对向导"
注意:这里的秘钥加密方式有两种,一种是DSA,一种是RSA.要选择秘钥类型为RSA加密方式,因为新版本的openssh默认禁用了dsa
点击下一步开始生成秘钥对
密钥对生成完成,需要设置秘钥对的加密密码(这个密码用于给密钥对加密),和登录密码不同
公钥生成完成,点击按钮,将公钥保存为文件
同时打开xshell连接属性(连接-用户身份验证-浏览-可以看到生成的私钥,这个私钥就是在登录的时候用于匹配公钥,可以导出到本地,也可以由Xshell管理)
将生成的公钥(.pub结尾的文件放到服务的.ssh文件夹中,注意这是个隐藏的文件夹)
选择登录方式(秘钥的方式登录),这里选择与服务器上秘钥对应的私私钥,同时舒服为秘钥加密的密码(在生成秘钥时自己手动设置的)
二.踩坑集锦:
1.注意:.ssh的文件目录的权限不能为777,可以设置为755 600,就是不能为777,否则使用xshell登录时会出现'所选的用户密钥未在远程主机上注册'这样的提示
原因是sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
2.查看登录日志可以找到问题所在
日志所在的目录
3.sshd需要开启PAM 修改/etc/ssh/sshd_config
设置UsePAM=yes