所选的用户密钥未在远程主机上注册。请再试一次

/ Markbug / 没有评论 / 571浏览

今天在Linux服务器搭建Git服务的时候,因为要开启服务器的密钥登录,所以要先在本地生成密钥并放到服务器的/home/用户/.ssh/authorized_keys文件中。但在完成上述步骤准备用xshell登录时居然登录不了提示:

所选的用户密钥未在远程主机上注册。请再试一次

这让我很郁闷,我保证我生成的密钥一定是没有问题的,但就是提示上述错误,按照程序员的思维,一定还是自己的问题。于上在网上搜索资料,网上大部分信息都说是权限问题,也就是说必须要保证.ssh目录权限为700、authorized_keys文件权限为600。我已检查这些目录和文件的权限都是正确的,显然不是这个原因。后来自己突然间想到,authorized_keys这个配置文件的目的是为了让客户端用户用密钥登录,那么这个文件必须要和自己登录的用户有关联,也就是说必须要放到登录的这个用户的目录下。由于我搭建的是Git服务,所以我把客户端生成的用户密钥放到git用户的.ssh目录下面,但由于我登录服务器要用root账号登录(没有其它用户允许登录)所以报上述错误也是合理的。于是,我把在git用户的authorized_keys文件拷贝到了root/ssh目录下(root账号不在home目录下),并重新赋予了这个目录和文件的权限,然后在一试。成功登录服务器。