VSCode作为终端工具替代FinalShell和MobaXterm
转自我的个人博客 https://blognas.hwb0307.com 。欢迎关注!
前言
不知小伙伴们都用过哪些终端工具?我有用过XShell、FinalShell和MobaXterm,其实都各有各的特点,特别是MobaXterm,我觉得是比较完美的终端工具。不过,今天和小伙伴们讨论的时候,发现 VSCode也可以作为一个终端工具 :
所以有点按捺不住那颗想要折腾的心了!
而且,我们可以 直接利用VSCode本地编辑器对远程文件进行预览和编辑 ,这是使用VSCode作为终端工具的最大卖点之一吧:
你甚至可以用来预览图片!一般的终端工具应该是做不到的。
我平时使用Python的时候就会使用VSCode;VSCode本身也是一个比较流行的IDE。我个人喜欢VSCode的主要原因是因为它兼容性比较好,插件功能强大,颜值高,比较适合我这种编程小白。初步体验了一下它的SSH功能,效果不错!如果你本来就在使用VSCode,它也可以作为一个终端工具喔!你也不用纠结要用Final Shell还是MobaXterm了!
这一期我们不讲怎么安装VSCode,大家可以在官网下载并安装即可:
VSCode下载
。对于Windows系统的用户来说,和安装一般的
.exe
软件没有太大的区别。我主要讲(shui)一下
怎么将VSCode打造成一个远程访问VPS的终端工具
。
安装Remote-SSH扩展
首先,我们要在本地VSCode客户端上安装一个VSCode的扩展,叫
Remote - SSH
。它的主要作用就是提供ssh访问的基本功能:
成功安装后,左侧栏中会出现一个电脑显示器的图标。依下图所示打开config文件(对Windows用户来说,路径一般是
C:\Users\Administrator\.ssh\config
),进行相关的设置:
内容类似于:
Host 主机1
HostName 192.168.1.151
User user1
Port 22
Host 主机2
HostName 192.168.1.152
User user3
Port 1452
Host 主机3
HostName 192.168.1.153
User user3
Port 3355
以
主机1
为例,参数解释如下:
- Host :主机的名字。随便取,只为了自己识别方便。
- HostName :通常是一个ip地址,可以是公网ip;如果是访问局域网机器,就写一个局域网ip。
- User :用户名
- Port :ssh端口。默认是22;如果你的VPS自定义了ssh端口,比如1234,就使用1234。
加几台主机就会显示几台主机,没有数量限制。注意, 不需要填写密码 。
在VPS上添加本地公钥
不太推荐登陆时使用密码,直接让远程的VPS信任本地主机就好。一般来说,如果你的电脑里用过ssh服务的话,
.ssh
文件夹里都会有这两个文件:
id_rsa
id_rsa.pub
如果没有这两个文件,对Windows用户而言,可以用管理员权限打开cmd或者Power Shell,输入
ssh-keygen
,按提示操作即可生成这两个文件。
id_rsa
是私钥,只能保存在本地电脑,不可让其它人知道;
id_rsa.pub
是公钥,保存在远程VPS中,让其它人知道也无所谓(一般也只是自己知道啦)。
这时,如果你想要通过访问某VPS中的某个用户,要先利用该用户的身份登陆VPS,进入用户的home目录,然后将
id_rsa.pub
的内容添加到该用户的
.ssh
文件夹里的
authorized_keys
文件里,类似于:
这样, 远程VPS就会信任我们的本地电脑,访问的时候就不需要密码了 。
如果这个用户没有
.ssh
和
authorized_keys
这两个文件(如果从来没设置过,一般是没有的),可以手动创建,然后运行命令
sudo service sshd restart
重启ssh服务生效。
让VPS信任我们的本地电脑后,我们直接右键某条SSH记录,直接点击
Open on SSH Host in Current Window
(在本窗口访问)或者
Open on SSH Host in New Window
(在新窗口访问):
即可正常访问。登陆成功后,左下角会出现
SSH:主机1
之类的字样。
第一次连接时,由于需要在VPS端安装
vscode sever
,所以时间会略长。之后登陆速度就会蛮快的了。
打开Shell
默认情况下,按
Ctrl+j
就可以调出Shell,再按一次
Ctrl+j
就会隐藏Shell。按右边的
^
图案可以向上填充Shell。这个是VScode的常规操作,与Remote SSH并无直接关联。
选择目录
有时候,我们想进入某个目录对某个文件进行编辑。默认情况下,你可以按
Ctrl+k+o
就可以调出目录选择;按
Esc
就可以退出选择。通常,你可以选择一个高级目录,比如根目录
/
,这样就不需要频繁地切换目录。VSCode每次切换这个工作目录都要重新连接一次。
当然,你编辑文件的时候,权限来自之前
authorized_keys
所对应的用户的权限。比如你登陆的是一个普通用户,是没有办法直接读写或执行root用户的文件的(除非root给予你相应的权限)。
上传文件
如果你要上传文件,直接拉到目录里就行了,这和大多数终端工具的行为是类似的:
无法登陆?
我今天在自己的NAS里就遇到无法用VSCode登陆的情况。经过一翻调查,这通常是由于 系统里没有VSCode的下载源 所致的。我们按以下步骤进行解决:
-
通过root权限将
/etc/ssh/sshd_config
文件中的AllowTcpForwarding
设定为yes。 -
重启ssh服务:
sudo service sshd restart
-
删除旧的VSCode文件夹:
rm -rf .vscode-server/
- 安装好VSCode源(以Debian系的Linux发行版为例):
# 下载必要软件
sudo apt-get install software-properties-common apt-transport-https curl
# 下载微软的asc文件
curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -