SSH,不止VS Code上的。
开启 SSH 服务
有些系统的 SSH 服务默认没有开启。在被远程的系统的终端中输入 ssh 127.0.0.1
,没错的话可以 Ctrl + c
停止;提示出错或没有安装,请先安装 ssh 服务器。
以 Ubuntu 等 Debian 系为例:
|
|
然后开启 SSH 服务,并设置自启动。
|
|
Debian 系给 sshd 的 service 起名叫 ssh,不知怎么想得。不过 sshd 也还能用,如果出错试试将 sshd 换成 ssh。
SSH登录命令
ssh 登陆命令的一般格式为 ssh user@HostName
,如:
|
|
如果需要指定端口就增加-p <port>
,不指定端口使用默认的22端口,如:
|
|
每次输入太长也不好记,可以自己设置一个别名,别名配置保存在 ~/.ssh/config
中。
下面是一个例子,注释是 Github Copilot 提示的,我看是对的,说明有人写过,哈哈:
Host demo # 主机别名,可以自定义
HostName 0.0.0.0 # 服务器地址
Port 8022 # 端口号,可以不写,默认22
User root # 登录用户名,可以不写,默认当前用户
VS Code SSH 使用
安装扩展
安装该扩展:SSH:Remote - SSH
也可以直接安装这个远程开发的扩展包:Remote Development,包含WSL、SSH、Docker等。
安装后打开侧栏的“远程资源管理器”(SSH Targets)即可看到 SSH 列表。如果你 ~/.ssh/config
有内容会显示,没有的话列表是空的。
要自己添加的话点击“+”按钮
或点击VSCode左下角绿色按钮,选择下图所示选项
输入 SSH 登陆命令。
确定后选择将刚刚的配置储存到哪里,选第一个就行。
开始连接
点击如图“新窗口打开”或右下角的“Connect”,会打开一个新的窗口。
第一次连接可能需要你选择连接的是哪个平台。
随后输入密码,完成连接。
如何使用
接下来可以打开
- 文件(夹)
- 终端
进行使用。
打开过的文件夹会在资源管理器中显示,可以方便以后快速打开。
SSH 免密登录
SSH认证方式有两种:
- 用户名密码认证
- 公钥私钥认证
上面就属于第一种用户名密码认证,如果不配置密钥的话每次连接都要输入密码进行验证。下面说第二种方式。
生成本地公钥
本地终端中执行
|
|
生成的文件就放在了~/.ssh
目录中,图为Windows的样例。
~
是指当前用户的主目录。Unix-like 上即~
或$HOME
所指;Windows 上为%USERPROFILE%
所指,在地址栏输入%USERPROFILE%
即可进入。
添加到“已授权”文件中
将本地用户~/.ssh/id_rsa.pub
中的内容添加到被远程用户的~/.ssh/authorized_keys
文件中,这个本地用户以后就可以免密登录了。
可以使用ssh-copy-id
,用法和 ssh 一样,只需把 ssh 换成 ssh-copy-id 即可。(Windows上的OpenSSH好像没有?)
如:
ssh-copy-id user@HostName
也可以在VS Code连接成功后点击“打开文件夹”,打开根目录/
或者当前用户主目录~
,自己复制粘贴(没有已授权文件的话自己创建一下)。