Use CSLinux with SSH

本文最后更新于 2022年12月1日 上午

优雅一点的远程调试 (Windows 版)

昨晚大佬介绍了 MacOS 下在 Clion 中实现远程调试(优雅一点的远程调试?),这里也大致介绍一下用 Windows 中的方式。

以 Windows 10 和 VS Code 为例。

珠玉在前,瓦石难当。

连接学校虚拟专用网络

具体情况参考这篇学校官方教程

如图,确保已经连接至学校 VPN。

Nottingham_1Nottingham_2 并无区别。

VS Code

确保已安装 VS Code

打开后在最左列找到 Extensions 图标(类似俄罗斯方块)并点开。搜索 ssh,找到如下两个插件(一般位于前三位)并安装。


配置 SSH

点击 VS Code 界面左下角的按钮。

在弹出的窗口点击 Open SSH Configuration File...

直接选择第一个文件路径即可,默认为当前用户 .ssh 文件夹下的配置文件 config(我的为C:\Users\Lingkang\.ssh\config)。

将以下内容添加在文件末尾并保存。

1
2
3
4
Host cslinux.nottingham.edu.cn
HostName cslinux.nottingham.edu.cn
User user_name
Port 22

此处 user_name 为邮箱前缀。

SSH 连接

再次点击左下角的按钮,在弹出的窗口选择 Connect to Host 选项。

继续点击第一项 cslinux.nottingham.edu.cn,会弹出新的 VS Code 窗口,在最上方输入密码即可。

(VS Code 会自动弹出会话框要求选择远程机器的平台,选择 Linux 即可。)

首次连接会时间稍长,会自动在 cslinux 上安装 vscode ssh server,等待三五分钟完成初始化即可。

至此,就已经通过 ssh 连接上了 cslinux。可以看到 VS Code 界面左下角已经显示了连接机器的 Host Name

点击左上角 Explorer,并点击 Open Folder,这里的文件夹就已经是虚拟机中的文件夹了,找到你的文件就可以开始了!

Done!

免密登录

生成 SSH 密钥

在本地打开 PowerShell,输入 ssh-keygen,这会在用户下生成一对 SSH 密钥。文件默认保存在 C:\Users\user-name\.ssh\id_rsa 地址中,如无特殊情况,直接回车确认默认地址即可。

提示需要密语 passphrase,同样直接回车为空即可。

输出内容大致如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
PS C:\Users\Lingkang\> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\Lingkang/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\Lingkang/.ssh/id_rsa.
Your public key has been saved in C:\Users\Lingkang/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ZS2XOAQaloal5ClzeqNVde5kwooPxUZXLBG3J7pbn+o lingkang@DESKTOP-4T7NV3Q
The key's randomart image is:
+---[RSA 3072]----+
| . . +..*=o |
| = o o o+o+oE |
| = o.. +.=o . |
|. o += = + . |
| . .o=o S |
| . .B .. |
|. .+.oo |
|. + +. |
| .+o=. |
+----[SHA256]-----+

配置免密连接

打开 cslinux 中用户名下的 .ssh 目录,新建文件 authorized_keys,将生成密钥中的 id_rsa.pub 内容复制粘贴到新文件中并保存。

并且在本地的 .ssh/config 中相对应的 Host 添加如下内容(参考此处):

1
IdentityFile "C:\Users\user-name\.ssh\id_rsa"

引号内即 ssh-keygen 生成的私钥文件 id_rsa 地址,记得把 user-name 替换成当前用户名并保存。

完成之后重新连接 cslinux,可以发现已经不需要再次输入密码了。

References

  1. 晓然晓然 - 优雅一点的远程调试?
  2. VS Code
  3. How to use VPN to connect to campus internal network
  4. Remote development over SSH
  5. How to Add SSH Key to VS Code and Connect to a Host
  6. 玩转VSCode插件之Remote-SSH

Use CSLinux with SSH
https://blog.lingkang.dev/2022/11/28/better-way-to-cslinux/
作者
Lingkang
发布于
2022年11月28日
许可协议