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用户)
保存
保存config文件之后,左侧会显示一个小电视的图标,右键点击connect
但是我在点击连接之后会提示这样的错误(没有就跳过)如何解决这个错误?
第一步右键点击SSH扩展,然后点击扩展设置
找到config file,打开之后是空的,需要自己填上config的路径,通常路径为为(C:\Users\XXX.ssh\config)
若上述方法还不奏效,也许是虚拟机中未安装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
此时再尝试连接已经可以了
上述配置完成之后就可以在vscode中输入密码访问linux中的文件,但是还有一个问题,就是每次打开vscode或者打开新文件都需要输入密码,很麻烦
这个时候就需要用到公钥和私钥了
密钥生成
密钥生成可以通过windows生成也可以通过unbuntu服务器生成,两种方法我都试过,但是在windows下面生成后对我的电脑貌似不行,所以我尝试了用unbuntu生成
打开终端输入ssh-keygen
2.确定路径后直接按ENTER(每个人生成路径不一样)
Enter file in which to save the key (/root/.ssh/id_rsa) :
输入密码(按回车键表示密码为空不填)
Enter passphrase (empty for no passphrase):
再次输入密码(可以为空,按回车键)
Enter same passphrase again:
生成公钥与私钥
ls /root/.ssh
查看该文件夹下面有没有生成密钥
当全部完成设置后,打开sshd_config
sudo vim /etc/ssh/sshd_config
在服务器上安装公钥
进入生成的两个密钥路径
cd ~/.sshcat id_rsa.pub >> authorized_keys
为了确保连接成功,对以下文件设置权限
sudo chmod 600 authorized_keyssudo chmod 700 ~/.ssh
加入下面配置,将密码禁用
PasswordAuthentication no
重启ssh
sudo service sshd restart
将私钥复制到客户端
我使用的是samba将文件复制到windows
Samba方式请参考https://www.cnblogs.com/gzdaijie/p/5194033.html
将id_rsa复制到C:\Users\XXX.ssh中就成功了
重新打开vscode就不需要密码了
来源地址:https://blog.csdn.net/cxn15335120506/article/details/123238233