VScode通过ssh连接树莓派进行远程开发调试(踩坑总结)

11 篇文章 0 订阅
8 篇文章 0 订阅

        写在开头(vscode使用ssh时,一定要可以联网才行,由这篇文章VSCode远程开发可知),vscode的ssh远程开发功能实在是太香了,再也不想体会那种写一段代码卡三年的噩梦!(Pycharm真那啥,只有专业版才能用shh)

        在配置功能的时候,踩了很多坑,所以想在此记录以下,希望能够对大家有所帮助。

        必备工具:

        1.Windows下安装openSSH

        2.vscode中安装remote ssh插件

        一、安装OpenSSH 

        为什么要安装呢?别问,问就是自己踩坑了!!!

        首先通过cmd命令,访问以下Windows是否具有ssh功能:

        像上面这张图,就是表明我电脑上已经拥有了ssh功能,大家就可以跳过第一步了。

        但是大多数人都是没有安装的,具体我是参考Windows下安装openSSH 这篇文章。在此我选择第二种方法(以下所有命令均在powershell执行):

        1、以管理员形式运行PowerShell,为了确保 OpenSSH 可用,请运行以下命令:

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

        2、 如果两者均尚未安装,则此操作应返回以下输出:

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent

Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

        3、然后根据需要安装对应的服务:

# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

#两者都会返回下列内容:
Path          :
Online        : True
RestartNeeded : False

         4、启动并配置 OpenSSH 服务器:

这三步依次执行下去

# Start the sshd service
Start-Service sshd

# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'

# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
    Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
    New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
    Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}

        二、VScode配置Remote SSH插件

        这里vscode通过ssh连接树莓派实现远程开发我参考这篇文章内容,在VScode通过拓展安装相应插件,如下所示:

        安装好之后, 对Remote SSH进行配置,如下所示:

        完成以上工作之后,VScode便可以出现远程连接的图标了,如下所示:

         三、VScode通过ssh与树莓派连接

        通过点击SSH右边的“+”,进行远程连接,输入命令格式如下: 

# user_name是远程连接的设备用户名,对于树莓派而言默认是pi
#ip——adress是远程连接的设备IP地址,可以通过无线网啥的查找
ssh user_name@ip_adress

        如果到这里一直很成功的朋友们,我真的太羡慕了,你们简直就是欧皇!!!不出意外的话,还是会出很多意外!下面将会介绍遇到的一些坑以及解决办法。

        四、遇到的坑及解决办法 

        1、通过cmd测试ssh是否可用,出现Bad owner or permissions on .ssh/config的解决办法

        我是参考了【Windows10】下Bad owner or permissions on .ssh/config的解决办法这篇文章。亲测好评!

     解决办法如下:
1、找到.ssh文件夹:

2、右键单击.ssh文件夹,然后单击“属性”,找到并点击“安全”标签。然后单击“高级”。单击“禁用继承”,单击“确定”。 将出现警告弹出窗口。单击“从此对象中删除所有继承的权限”。你会注意到所有用户都将被删除。

3、在同一窗口中,单击“添加”按钮。接下来,单击“选择主体”窗口。

4、单击“立即查找”按钮。应显示用户结果列表。 选择您的用户帐户。然后单击“确定”(大约三次)以关闭所有窗口。这里提供一个查找自己用户账户的方法,在开始那里,就可以看到。

        2、vscode无法配置保存.ssh路径下的config文件

         还是.ssh文件夹的权限问题,根据4.1配置下俩,你会发现.ssh文件夹只有读取和执行权限,我们需要将修改权限打开:

       3、windows使用ssh远程连接服务器 报错:host key verification failed.

        我升级了树莓派系统,然后通过ssh登录出现了上述报错。这是由于我系统更新,但是相关ssh配置没有更新,具体解决方法可以参照这篇大佬的文章进行修改。

        具体报错如下所示:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:OH+Z2mAEQRl4O34U6fZFZPjP284my1n+YHQEUbhviCA.
Please contact your system administrator.
Add correct host key in C:\\Users\\yourname/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\\Users\\yourname/.ssh/known_hosts:2
ECDSA host key for yourIp has changed and you have requested strict checking.
Host key verification failed.

        第二种错误:

参考这个链接:vscode远程连接Linux失败,提示过程试图写入的管道不存在(三种解决办法)

综上,可以用啦!!! 

  • 26
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值