在Win10上使用SSH远程连接Linux搭建VSCode开发环境

在Win10上使用SSH远程连接Linux搭建VSCode开发环境

一、使用条件

使用VSCode远程开发需要满足一些条件:

  1. 目标主机必须安装SSH客户端并且是Linux 64位系统(树莓派仅支持2b及以上,zero/w不支持因为bcm2835是armv6l架构)
  2. arm架构仅支持RaspbianStrech/9(32位)及以上或Ubuntu18.04(64位)及以上系统
  3. 本地主机仅支持Windows 1803及以上版本并安装官方OpenSSH组件
    Windows10系统版本查看方法:
    在这里插入图片描述

二、开启Windows10的SSH功能

点击开始菜单->设置->应用->应用和功能->可选功能->添加功能;添加OpenSSH 客户端OpenSSH 服务器
在这里插入图片描述
在Linux下使用命令开启ssh功能:

sudo apt-get install openssh-server 

安装成功使用命令后的显示:
在这里插入图片描述

三、测试在Windows下SSH登录Ubuntu

Windows右击开始界面,打开Windows PowerShell
在这里插入图片描述
使用命令ssh [username]@[ip addr]命令远程登陆,然后输入密码,如图,SSH成功登录ubuntu16系统
在这里插入图片描述

四、使用密钥进行ssh免密登录

ssh使用私钥登录大致步骤是:主机A(客户端)创建公钥私钥,并将公钥复制到主机B(被登陆机)的指定用户下,然后主机A使用保存私钥的用户登录到主机B对应保存公钥的用户。

  1. 在Windows10下生成公钥和私钥
    打开Windows PowerShell使用命令生成即可,-t rsa可以省略,默认就是生成rsa类型的密钥

    ssh-keygen -t rsa
    

    命令执行后会有提示,输入三次回车即可,执行完成后会在当前用户的.ssh目录下生成两个文件:id_rsa、id_rsa.pub文件,前者是私钥文件,后者是公钥文件(拷贝到其他主机只需要拷贝这个文件的内容)
    在这里插入图片描述在这里插入图片描述

  2. 将公钥复制到被登陆的主机上的 ~/.ssh/authorized_keys 文件中
    拷贝公钥有两种方法,其原理都相同:
    1)、使用 ssh-copy-id 直接拷贝
    如果安装了Git的话,打开Git bash使用 ssh-copy-id 进行拷贝公钥非常方便,只需要指定目标主机和目标主机的用户即可。命令如下:

    ssh-copy-id -i ~/.ssh/id_rsa.pub william@192.168.0.106
    

    然后依次输入yes和密码即可
    在这里插入图片描述
    2)、自己创建文件进行拷贝
    如果没有安装Git,好像Windows PowerShell不支持ssh-copy-id命令;
    先cd到Windows10的用户下的 .ssh 目录,使用scp命令将authorized_keys文件拷贝到Ubuntu下

    scp .\id_rsa.pub william@192.168.0.106:/home/william
    

    拷贝时需要输入密码 在这里插入图片描述
    然后使用ssh登录Ubuntu在用户目录下创建.ssh文件夹,需要将该目录权限改为700,该目录的权限必须是700才有效,然后将id_rsa.pub文件移动到.ssh目录下,并修改其名称为authorized_keys,修改其权限为600,该文件有规定如果属组其他人出现可写则文件就不会生效
    在这里插入图片描述

  3. 我们回到windows10下,使用ssh命令登录,可以看到,不再需要密码了
    在这里插入图片描述

  4. 解决一个问题
    在使用过程中包括使用putty来SSH连接远程服务器的时候出现一段时间不操作连接断开。
    找到sshd_config配置文件进行编辑:

    sudo vim /etc/ssh/sshd_config
    

    在其中找到以下配置项目:

    #ClientAliveInterval 0
    #ClientAliveCountMax 3

    如果没有,则在文件后添加,修改或添加成如下所示:

    ClientAliveInterval 60
    ClientAliveCountMax 3
    

    ClientAliveInterval 指定了服务器端向客户端请求消息 的时间间隔, 默认是0, 不发送.
    ClientAliveInterval 60 表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了.
    ClientAliveCountMax, 使用默认值3即可.
    ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值,就自动断开,正常情况下,客户端不会不响应.

    然后重启sshd service

    sudo /etc/init.d/ssh restart
    
  5. 我们说一下公私钥简介与原理

公钥和私钥都属于非对称加密算法的一个实现,非对称加密算法不能使用相同的密钥进行解密,也就是说公钥加密的只能使用私钥进行解密。
这个加密算法的信息交换过程是:

  1. 持有公钥的一方(甲)在收到持有私钥的一方(乙)的请求时,甲会在自己的公钥列表中查找是否有乙的公钥,如果有则使用一个随机字串使用公钥加密并发送给乙。
  2. 乙收到加密的字串使用自己的私钥进行解密,并将解密后的字串发送给甲。
  3. 甲接收到乙发送来的字串与自己的字串进行对比,如过通过则验证通过,否则验证失败。

五、VSCode使用

官方下载地址:https://code.visualstudio.com/Download
安装你的系统版本下载,我选择64位
在这里插入图片描述
点击安装即可,关于VScode的使用可以参考Visual Studio Code的使用
打开VSCode,安装Remote - SSH插件,
在这里插入图片描述
点击【远程资源管理器】,打开【SSH TARGETS】的Configure,选择【C:\Users\william.ssh\config】文件
在这里插入图片描述
然后修改文件,填入主机名(可以自己随意设定),主机ip地址,及用户名
在这里插入图片描述
保存后即可,然后我们就会看到远程资源管理器可以看到我们配置的主机,右键,点击【Connect to Host in Current Window】
在这里插入图片描述
可以在右下角看到连接成功,点击新建终端,也可以看到,终端新建成功
在这里插入图片描述
可以看到,文件夹和文件也可以打开成功
在这里插入图片描述

  • 32
    点赞
  • 137
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
vscode支持通过SSH进行远程连接Linux服务器。首先,你需要确保在本地安装了vscode和Remote - SSH扩展。然后,按照以下步骤进行配置: 1. 打开vscode并安装"Remote - SSH"扩展。你可以在扩展商店搜索并安装它。 2. 在vscode的左下角点击"Remote Explorer"图标,然后选择"SSH Targets: Add SSH Host"。 3. 在弹出的输入框中,按照格式输入SSH主机名和IP地址,例如 "ssh username@ipaddress",其中"username"是你在Linux服务器上的用户名,"ipaddress"是服务器的IP地址。 [3] 4. 选择你想要连接的服务器,点击它的条目,vscode会自动连接到该服务器。 5. 如果是第一次连接该服务器,vscode会提示你输入密码。输入正确的密码后,vscode会保存该密码,以便下次连接时自动登录。 6. 连接成功后,你可以在vscode中像在本地一样进行编辑代码、查看文件等操作。 7. 如果你需要在服务器上运行代码,可以使用vscode的终端功能,选择服务器上的终端并执行相应的命令。 通过以上步骤,你可以方便地使用vscode通过SSH远程连接Linux服务器进行开发。这样你就可以直接在服务器上编写代码,省去了传输代码的麻烦。同时,你还可以直接查看服务器上的文件和图片。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [VSCode使用Remote SSH远程连接Linux服务器【远程开发】](https://blog.csdn.net/weixin_74957752/article/details/130147422)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [vscode利用ssh远程连接linux虚拟机](https://blog.csdn.net/weixin_45298607/article/details/125459599)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值