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

转载于:Willliam_william

在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 

 
 
   
   
   
   
  • 1

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

三、测试在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
    
       
       
         
         
         
         
    • 1

    命令执行后会有提示,输入三次回车即可,执行完成后会在当前用户的.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 [email protected]
    
       
       
         
         
         
         
    • 1

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

    scp .\id_rsa.pub [email protected]:/home/william
    
       
       
         
         
         
         
    • 1

    拷贝时需要输入密码 在这里插入图片描述
    然后使用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
    
       
       
         
         
         
         
    • 1

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

    #ClientAliveInterval 0
    #ClientAliveCountMax 3

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

    ClientAliveInterval 60
    ClientAliveCountMax 3
    
       
       
         
         
         
         
    • 1
    • 2

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

    然后重启sshd service

    sudo /etc/init.d/ssh restart
    
       
       
         
         
         
         
    • 1
  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】
在这里插入图片描述
可以在右下角看到连接成功,点击新建终端,也可以看到,终端新建成功
在这里插入图片描述
可以看到,文件夹和文件也可以打开成功
在这里插入图片描述

你可能感兴趣的:(Linux,linux,ssh,vscode)