Windows连接Linux服务器远程开发解决方案

解决方案

vscode+Linux服务器

解决连接问题

vscode商店下载remote-ssh工具,然后进行配置。

这个网上依旧有很多详细的教程了,这里就不过多赘述。

配置免密登录

这一部分是我要重点介绍的,因为我就在这里卡了很长时间。

在已经能够连接的基础上,我们要使用“密钥”来实现免密登录连接,这样我们就不用每次都输入密码进行登录。

(1)在本地机器上生成密钥对(如果你已经生成过密钥对,可以跳过此步骤)

  在这里,我们的本地机器就是Windows机器,要生成密钥对,我们要借助一个具备SSH功能的工具(比如OpenSSH,gitbash之类的)。因为之前安装过git,所以我就使用gitbash来操作。

  在SSH工具下执行 ssh -keygen -t rsa,然后就不用管他,一路回车,我们就会在我们本地 C/Users/用户名/.ssh文件夹下看到生成的 id_rsa(私钥)和id_rsa_pub(公钥)两个钥匙

(2)把公钥的内容复制到Linux服务器的 home/用户名/.ssh/authorized_keys文件中

  这个内容复制过程,你手动复制黏贴也行,你用命令行操作也是OK,反正把刚刚Windows机器生成的id_rsa_pub内容弄到这个authorized_keys文件中即可(如果没有这个authorized_keys文件,你就手动创建就行)。

基本上,很多人完成到这里就已经能够实现免密登录了,试一试行不行,不行我们就往下继续解决无法免密登录的问题。

无法免密登录解决指南

(1)Linux服务器中的文件权限问题

  .ssh和authorized_keys这两个文件(目录)是有权限要求的,.ssh需要700,authorized_keys需要600或644

  用两个命令实现:chmod 700 ~/.ssh    和     chmod 600 ~/.ssh/authorized_keys

(2)sshd_config配置文件需要修改

  • 一是确保Linux服务器中 /etc/ssh/sshd_config文件中的 StrictModes 是处于 no 状态,一般StrictModes默认是yes状态,所以我们要找到#StrictModes yes这一行,然后改成 StrictModes no
  • 二是确保Linux服务器中 /etc/ssh/sshd_config文件中的 PubkeyAuthentication 处于yes 状态,一般默认就是yes ,如果不是yes,就改成PubkeyAuthentication yes即可
  • 全部改完后,一定要重启sshd服务:systemctl restart sshd.service 

(3)如果到这里还是不行,并且你使用的是很久之前就已经生成的密钥,我的建议是重新生成密钥,我就是重新生成密钥后成功的

posted on 2019-11-19 22:32  川川——叮叮咚咚  阅读(495)  评论(0编辑  收藏  举报