0%

VSCode 配置远程开发

通过 PowerShell 安装 OpenSSH

来自微软官方文档。 若要使用 PowerShell 安装 OpenSSH,请首先以管理员身份启动 PowerShell。 若要确保 OpenSSH 功能可以安装,请执行以下操作:

1
2
3
4
5
6
7
8
9
10
# 输入这句话

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

# This should return the following output:

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

然后安装服务器和 / 或客户端功能:

1
2
3
4
5
6
7
8
9
10
11
# 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

# Both of these should return the following output:

Path :
Online : True
RestartNeeded : False

命令行中输入 ssh 命令验证:

1
2
3
4
5
6
7
8
[input]: ssh
[out]: usage: ssh [-46sdasdsfsf] [-B bind_interface]
[-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
[-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
[-i identity_file] [-J [user@]host[:port]] [-L address]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-Q query_option] [-R address] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] destination [command]

查看 openssh 路径

image-20200829152810966

这里显示了两个路径,使用 openssh 的那个

SSH 服务器的初始配置

1
2
3
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
Get-Service ssh-agent

配置 VScode Remote-SSH

安装插件

在界面左边的 Extensions 里搜索 ssh,找到 Remote-SSH 插件安装。

image-20200829153839323

编辑配置

安装完成后,选择左边的 SSH 插件按钮,点击 Connections 的齿轮选择 ssh_config 的路径,选择第一项的.ssh/config 就可以,回车即可编辑此文件。

image-20200829153930281

假设你的跳板机的 ip 地址为 A,目标机器的地址为 B,那么在你的 config 中写下如下配置并保存:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Host JumpMachine
# 跳板机的ip地址
HostName A
# 你跳板机的用户名
User username
# 跳板机登录端口
Port 22

Host TargetMachine
# 目标机的ip地址
HostName B
# 你目标机的用户名
User username
# 目标机登录端口
Port 8080
IdentityFile ~/.ssh/jump_rsa
ProxyCommand "openssh的安装路径"\ssh.exe -W %h:%p JumpMachine

其中”openssh 的安装路径” 因人而异(我的 openssh 的安装路径为 C:\Windows\System32\OpenSSH\ssh.exe), IdentityFile 是公司给的私钥,原始名称为 id_rsa,可以复制到.ssh,若不想覆盖原 private key, 重命名为 jump_rsa。

如果一切正常的话,此时你在 SSH Targets 里就可以找到 TargetMachine 啦!点击旁边的小加号就可以开始远程连接啦!

img

私钥文件权限太高

如果 SSH 连接时提示私钥文件权限太高,可以按如下方式修改文件属性。

右击 jump_rsa, 中文系统:属性→安全→高级→禁止继承→删除所有继承→确定
如果系统是英文:
Properties -> Security -> Advanced -> Disable Inheritance -> Remove all inherited permissions from this object。

image-20200829160306077

然后重新添加用户,可以设置如下 3 项:

image-20200829160749900

设置方式:

image-20200829160902719

免密登录

若不想每次输入 passphrase 可以通过 openssl 指令生成解密之后的 id_rsa 并且修改 IdentityFile 成解密之后的文件即可

openssl rsa -in ~/.ssh/jump_rsa -out ~/.ssh/jump_rsa_new

注意需要输入密码,然后替换掉 ssh 配置里面的 jump_rsa

C++ 开发和软连接

安装插件 C/C++

image-20200829161219572

vscode 的 cpp 解析文件默认放在~/.vscode-cpptools 目录,由于开发机上的 /home 目录分区空间非常小,vscode 生成的文件比较大,很容易导致空间占满,可以软连接到其他目录。

主要转移两个,一个是.vscode-server,另一个是.cache,这占用两个空间比较大。

  1. 首先把这两个文件 mv 到新的存储区域,例如新建目录 /data1/sunyan/work, 然后 mv /home/sunyan/.cache /data1/sunyan/work/,然后 mv /home/sunyan/.vscode-server /data1/sunyan/work/。(注意不要关闭 vscode)
  2. 然后建立软连接:

    1
    2
    ln -s  /data1/sunyan/work/.vscode-server /home/sunyan/.vscode-server
    ln -s /data1/sunyan/work/.cache /home/sunyan/.cache
  3. 建立好之后:

    image-20200829175456795

小技巧 1:du -sh .[!.]** ** | sort -hr,显示所有隐藏文件和非隐藏文件的大小并根据占用空间排序

小技巧 2:ls -lah , 显示目录信息,-a 显示所有文件及目录 (ls 内定将文件名或目录名称开头为”.” 的视为隐藏档,不会列出),-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出,h 选项的意思是生成的结果有利于人看,也就是不是用默认的 byte 做单位,而是根据实际情况调整。

支持一根棒棒糖!