vscode 配置免密后仍然需要输入密码
问题:
最近Linux服务器进行了系统重装,导致个人电脑无法连接ssh,原因是个人电脑在第一次连接成功服务器时,会记录一个ip+RSA的秘钥,由于系统重装,Linux服务器的RSA公钥改变,那么相同的ip两者的公钥无法对起来,所以会出现无法连接的问题,删除个人电脑中known_hosts
文件中的对应的服务器ip后,可以成功连接到服务器,但是vscode的免密登录却失效了,每次都要重复输入密码,重新生成密钥对也不行,之后查阅官方的ssh 免密登录文档终于发现了问题所在。
原因:
ssh免密登录(也称为密钥登录)出于安全性考虑,对.ssh
目录下的文件有着严格的权限要求,有时候我们按照一些教程手动的创建.ssh文件夹以及authorized_keys
文件,或者之后手动的对.ssh
文件夹中的文件进行了修改,可能会使得文件夹以及其中的文件权限不对,导致ssh使用密钥登录失败。
解决
查看官方文档的免密配置过程,可以发现其中有一步是更改.ssh
文件夹和authorized_keys
的权限,如下截图所示:
因此,我们可以查看自己服务器上的.ssh
文件夹的权限是否为700以及authorized_keys
文件的权限是否为600,并通过如下命令更改为对应的权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
设置好后,重新启动vscode,原先配置的免密登录就能正常连接而无需输入密码了。