使用vscode访问和修改远程文件,分三步实现:在远程linux机器上安装rmate;在本地windows上安装openssh;在vscode中安装扩展remote vscode。
1、 在远程linux机器上安装rmate
rmate有很多中语言版本,这里用的是python的版本。github地址:https://github.com/sclukey/rmate-python
下载安装比较简单,在linux中执行以下命令即可
wget https://raw.githubusercontent.com/sclukey/rmate-python/master/bin/rmate chmod +x ./rmate mv ./rmate /usr/local/bin/rmate
2、在本地window中安装openssh
github地址:https://github.com/openssl/openssl/blob/master/INSTALL
这个是需要自己编译的,推荐直接利用window版的安装包:https://www.mls-software.com/opensshd.html
推荐使用exe版本。如果下载的是免安装的版本,需要在windows设置一下环境变量,到解压后的bin目录。安装完成运行ssh命令会有以下提示:
可以直接运行 ssh-keygen -t rsa 命令生成密钥对,一般默认的文件夹会在当前用户目录下的.ssh文件夹中。在windows的命令行中实现对远程linux的免密码登录,和在linux系统中的方式是一样的,将windows中生成的公钥id_rsa.pub文件追加到所用的linux登录用户的.ssh目录中的authorized_key文件中即可。
要使authorized_key生效,需要需要对sshd_config文件进行修改,主要是以下三项,取消注释即可
vim
/etc/ssh/sshd_config
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
之后,执行 service sshd restart 命令重启sshd服务
service sshd restart
# 之后
cat id_rsa.pub >> authorized_keys
# 注意文件的路径
注意的是,如果使用的linux登录用户不是root用户,需要修改以下.ssh文件夹以及authorized_key文件的权限,否则是无法实现免密码登录的
chmod 700 .ssh cd .ssh/ chmod 600 authorized_keys
3、安装remote vscode扩展
扩展地址:https://marketplace.visualstudio.com/items?itemName=rafaelmaiolla.remote-vscode
安装完成后,面板中点击Start Server,启动服务(这一步是必须的)
之后打开终端(【查看】——【集成终端】),输入以下命令:
# 例子
ssh -R 52698:127.0.0.1:52698 learn@192.168.1.215
ssh -R 52698:127.0.0.1:52698 learn@192.168.1.215 -p 2159
# 上面2159为端口号,只是例子,ssh默认通过22端口访问远程主机,出现这种情况可能是更改了端口,也可能是存在端口的转发。
# 之后
rmate -p 52698 linux中的文件名称
结果会打开相应的文件:
之后可以直接进行修改了。
此外,如需设置扩展自动启动,只需点一下【工作区设置】,这样会自动添加setting.json文件
在文件中进行如下设置即可。
最后,如果开启了防火墙,需要把所用到的52698端口打开。