网络知识 娱乐 超详细解答vscode如何远程连接Linux以及可能会出现的一些问题

超详细解答vscode如何远程连接Linux以及可能会出现的一些问题

vscode如何远程连接Linux
1.在vscode扩展里面安装下面两个扩展

在这里插入图片描述
2.快捷键 Ctrl + Shift + P打开命令面板,输入ssh,选择Remote-SSH:Settings,将Show Login Terminal勾选上在这里插入图片描述
在这里插入图片描述
3.点击左边远程资源管理器,然后在点击设置(configure)小图标
在这里插入图片描述
选择config所在的路径
在这里插入图片描述
会打开这样的界面
在这里插入图片描述
Host XXX为自己设置的名称
HostName 为ubuntu ip地址(在虚拟机终端输入 ip addr)
User 为unbuntu用户名(我使用的为root用户)
保存

在这里插入图片描述

4.保存config文件之后,左侧会显示一个小电视的图标,右键点击connect

在这里插入图片描述

5.但是我在点击连接之后会提示这样的错误(没有就跳过)如何解决这个错误?

在这里插入图片描述
第一步右键点击SSH扩展,然后点击扩展设置
在这里插入图片描述
找到config file,打开之后是空的,需要自己填上config的路径,通常路径为为(C:UsersXXX.sshconfig)
在这里插入图片描述
若上述方法还不奏效,也许是虚拟机中未安装sshd
解决方法

安装sshd

sudo apt-get install openssh-server

启动sshd

sudo net start sshd

检查防火墙设置

sudo ufw disable

检验:

ssh localhost

若成功,则表示安装成功并且连接

但也会出现连接失败的问题,比如root用户即使正确输入密码,也会提示如下类似信息,但非root用户可以正常登录

在这里插入图片描述
问题原因是服务端ssh服务配置禁止了root用户登录策略
解决办法:

首先检查配置:
cat /etc/ssh/sshd_config
寻找其中是否包含:PermitRootLogin no
等类似配置在这里插入图片描述
将其改为 yes,或者直接在命令行前面加一个#将其注释掉
之后再重启ssh服务

service sshd restart

此时再尝试连接已经可以了

6.上述配置完成之后就可以在vscode中输入密码访问linux中的文件,但是还有一个问题,就是每次打开vscode或者打开新文件都需要输入密码,很麻烦

这个时候就需要用到公钥和私钥了

密钥生成
密钥生成可以通过windows生成也可以通过unbuntu服务器生成,两种方法我都试过,但是在windows下面生成后对我的电脑貌似不行,所以我尝试了用unbuntu生成

1.打开终端输入ssh-keygen
2.确定路径后直接按ENTER(每个人生成路径不一样)

Enter file in which to save the key (/root/.ssh/id_rsa) :

3.输入密码(按回车键表示密码为空不填)

Enter passphrase (empty for no passphrase):

4.再次输入密码(可以为空,按回车键)

Enter same passphrase again:

5.生成公钥与私钥
ls /root/.ssh
查看该文件夹下面有没有生成密钥

在这里插入图片描述

当全部完成设置后,打开sshd_config

sudo vim /etc/ssh/sshd_config

在服务器上安装公钥
进入生成的两个密钥路径

cd ~/.ssh
cat id_rsa.pub >> authorized_keys

为了确保连接成功,对以下文件设置权限

sudo chmod 600 authorized_keys
sudo chmod 700 ~/.ssh

加入下面配置,将密码禁用
PasswordAuthentication no

重启ssh

sudo service sshd restart

将私钥复制到客户端
我使用的是samba将文件复制到windows

Samba方式请参考https://www.cnblogs.com/gzdaijie/p/5194033.html

将id_rsa复制到C:UsersXXX.ssh中就成功了
重新打开vscode就不需要密码了