【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)

【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)

  • 1 环境介绍
  • 2 服务端配置(Ubuntu20.04)
  • 3 客户端配置(Windows10)
    • 3.1 安装 OpenSSH
    • 3.2 生成密钥
    • 3.3 VSCode 配置
  • 4 部署公钥(免密登录)
  • 5 .ssh 文件夹中各个文件的作用
  • 6 非局域网内使用 ssh
    • 6.1 服务端(Ubuntu)配置
    • 6.2 客户端(Windows)配置

1 环境介绍

  • 服务端:Ubuntu20.04
  • 客户端:Windows10VSCode

2 服务端配置(Ubuntu20.04)

  • 安装 OpenSSH 客户端
sudo apt install openssh-server
  • 开启客户端服务

只需开启一次,之后开机自启

sudo service ssh start
  • 查看进程(查看是否存在 sshd
ps -e | grep ssh* 

3 客户端配置(Windows10)

微软官方的教程:Windows 中的 OpenSSH

3.1 安装 OpenSSH

  • 打开设置,选择应用>应用和功能,然后选择可选功能

  • 扫描列表,查看是否已安装 OpenSSH。 如果未安装,请在页面顶部选择添加功能

  • 查找OpenSSH 客户端,再单击安装
  • 查找OpenSSH 服务器,再单击安装
  • 安装完成后,查看已安装功能中是否有 OpenSSH 客户端OpenSSH 服务器
    【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第1张图片
  • 一些可执行命令
    【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第2张图片

3.2 生成密钥

  • 打开终端输入

若不输入参数,默认为 rsa

ssh-keygen -t ed25519
  • 选择生成密钥的路径,可以按 Enter 来接受默认值
  • 系统会提示你使用密码来加密你的私钥文件(这个密码要记住)

可以为空,但不建议这样做。 将密码与密钥文件一起使用来提供双因素身份验证。

【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第3张图片

  • 生成 id_ed25519id_ed25519.pub 两个文件(我这里用的是默认 rsa 算法)
    【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第4张图片

3.3 VSCode 配置

  • 安装 Remote - SSH 插件
    在这里插入图片描述
  • 加入远程服务器
    【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第5张图片
  • 配置 config 文件

大概内容如下:
【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第6张图片
其中 Host 可以自定义名字,User 为服务端的 hostnameHostname 为服务端的 ip 地址 或 域名。

【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第7张图片
这个配置完成后,可以直接执行 ssh intel,即可连接。

  • 开启连接
    【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第8张图片
  • 左下角可以看到已连接的标志,并且点击 open folder 可以访问服务端各个文件
    【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第9张图片

4 部署公钥(免密登录)

可以这样来远程执行一些命令,例如:

ssh hostname@ip mkdir ~/.ssh
  • Windows Terminal 输入
scp C:\Users\USERNAME\.ssh\id_rsa.pub HOSTNAME@IP:~/.ssh/authorized_keys

可以借助这个命令来传输一些文件,如下:

scp windows的文件 HOSTNAME@IP:linux的文件
  • 验证
ssh HOSTNAME@IP

若不需要输入密码,即完成配置。

5 .ssh 文件夹中各个文件的作用

Linux中.ssh目录下各文件的作用

文件名 功能
id_rsa 经过 rsa 算法生成的私钥
id_rsa.pub 经过 rsa 算法生成的公钥
authorized_keys 存放需要免密登录的客户端公钥,实现免密连接
known_hosts 记录访问过的计算机的公钥
config 可以不用输入 hostname@ip,用其中的 Host 名代替

6 非局域网内使用 ssh

6.1 服务端(Ubuntu)配置

  • 查询硬件架构
1 arch
2 uname -a
  • 下载花生壳
    【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第10张图片

  • 安装

cd ~/下载
# 自己在官网复制
wget "https://down.oray.com/hsk/linux/phddns_5.2.0_amd64.deb" -O phddns_5.2.0_amd64.deb
sudo apt install phddns_5.2.0_amd64.deb
# 若存在依赖相关错误,则执行下面的命令
sudo apt install -f

下载完成后,会有如下输出(左下角的 SN 码有用):
也可以通过 phddns status 命令查询

【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第11张图片

  • 登录花生壳管理平台(上图中的地址信息)

第一次登录需要激活认证

  • 配置内网穿透
  1. 领取免费映射
    【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第12张图片

  2. 新增映射
    【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第13张图片

  3. 填写内网主机地址(即真实的 ip 地址)和端口(ssh 默认使用端口号 22
    【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第14张图片

  4. 诊断,查看是否连接成功
    【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第15张图片

6.2 客户端(Windows)配置

可以直接使用 ssh 命令进行连接

ssh -p 端口号 hostname@外网域名

简单配置一下免密连接

  • 传输公匙给服务端
# -P 是大写!!
scp -P 端口号 C:\Users\USERNAME\.ssh\id_rsa.pub hostname@外网域名:~/.ssh/authorized_keys

不想用命令也可以手动复制。

  • 配置 config 文件

Host: 自定义名称
HostName: 可以是 ip 地址,也可以是域名
Port: 端口号(如果不是 22,则需要配置)

【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第16张图片

  • 连接测试

使用 ssh 命令连接

ssh orb_out

使用 VSCode 连接

【SSH】Windows 上 VSCode 远程开发(包含非局域网连接配置)_第17张图片

你可能感兴趣的:(开发工具,ssh,vscode,服务器)