本来是为了在Mac系统下实现VSCODE通过remote插件对远程代码的免密访问, 因此如何使用及配置remote, 以及远程服务器若不能正常安装remote相关,需要自己手动安装等事宜不再赘述, 网上有大把的教程.
关于免密访问, 秘钥对已经生成, 公钥文件已经传到远程服务器, sshd_config相关权限设置已开.
但是却无法实现ssh的免密访问. 可以先尝试在终端上通过 ssh username@server_ip 或者 ssh -i id_rsa username@server_ip 及类似命令访问远程服务器, 看是否能实现免密.
我的依然不能免密访问. 原因在于,对~/.ssh 以及 ~/.ssh/authorized_keys的权限设置不对!
要求 分别设置 700 和 600 权限, 但是我发现已经设置的权限高于这2个权限, 就一直没有修改此处,导致一直无法实现免密登录. 原来ssh对目录权限有较高的要求, 必须设置成 700 和 600(有说644也可,未尝试).最后我修改了这两个权限, 立即实现了免密登录, 进而VSCODE remote 也实现了免密访问远程代码.
说明自己对Linux的了解还是很不足的, 以此为戒.
另外,对于Mac用户, 需要执行下ssh-add(mac的坑点),在Mac上执行这条命令:
ssh-add -K [你的私钥文件,就是那个不加.pub结尾的文件]
# 例如,ssh-add -K id_rsa
还有一点比较坑, 就是每次重启后都要执行这个命令. 不过当然是有解决办法的啦, 参考另外小伙伴写的blog:mac下解决开机需要每次ssh-add的问题_听见下雨的声音hb的博客-CSDN博客
注意:
把生成的public key加到目标机器的~/.ssh/authorized_keys,仍不能直接免密码登录。
原因是ssh 对目录的权限有要求,需要修改ssh目录和文件的权限如下:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys