服务器很多时候都是部署在Linux远程机器上的,我们通常是SSH连过去然后用vim或者emacs去修改源文件。这种方式对我来说很麻烦。这时,微软开发了一个VSCode的插件Remote-SSH,可以说是目前比较完美的解决了在windows下开发linux程序的问题。Remote-SSH配置简单,界面可视化。
1。安装
目前Remote-SSH这个插件仅支持VSCode的Insider版本(2019.5.8),或者19年5月之后的最新版本已经支持了,所以你需要下载VSCode的Insider版本,然后直接在扩展搜索Remote-SSH插件,安装拓展程序
2。配置
Linux服务器上需要安装ssh服务器,这个是必须的,需要支持 用户名/密码 或 密钥 方式,在配置之前,你需要保证在Windows的命令行下正常连接上linux服务器
注意: 如果命令行提示ssh命令不存在,请安装git,或者open-ssh,并把ssh.exe所在的目录添加到环境变量中,继续下去之前,请确保您已经可以实现上图(通过Windows cmd命令行执行ssh,连接linux)
在VSCode中我们可以通过用户名密码、或者密钥认证 2种方式连接到Linux.我们分别来实现
3。连接
(1)用户名/密码认证
配置用户名/密码认证 需要编辑一下VSCode的settings.json文件,打开的方式如下图,点击设置,滑动鼠标,找到任意一个在settings.json中编辑
点进去就行
下面一行添加
"remote.SSH.showLoginTerminal": true,
配置完成后,可以开始我们的连接了.
使用命令ctrl + shift + p调出对话框, 键入remote-ssh, 打开config 配置
弹出一个新窗口,根据提示,输入linux的密码
看到已经连接上了 文件->打开文件夹(或者文件),可以显示出linux的文件夹(或者文件)…
根据提示,这个shell不要关闭…关闭连接就断了…
根据上面的步骤,相信已经成功的连接上linux了.但是我们发现,每次输入密码简直太烦人了.并且需要输入好几次,有没有好一点的方法呢 ,那就是采用公钥.
(2)密钥认证
首先,我们在Windows下 用cmd切换到我们编辑主机config文件所在的目录,.类似下图(由于每个人用户名不一样,所以会有些区别)
执行 ssh-keygen
,如果ssh命令可以正常执行,这个也可以.
确认下目录,一路回车! 完成后多了id_rsa,id_rsa.pub 两个文件.
我们需要将 id_rsa.pub
文件,复制一份到linux服务器上 ~/.ssh/
目录下(注意,这个需要是您远程登陆的账户),若没有该目录,请执行 mkdir ~/.ssh
创建,然后将 id_rsa.pub 远程传输到该目录下.
然后切换到该目录下, 执行 cat id_rsa.pub >> authorized_keys
执行完上述操作前,请确认 /etc/ssh/sshd_config 文件下的
PubkeyAuthentication yes,
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2,
检查两条是不是正常,若有注释,请取消,若不相同,请修改或者添加。 修改完成后,重启linux的ssh服务.现在配置完成。
回到Windows的命令行 ,执行 ssh (用户名)@192.168.160.132。这次登陆,发现 **不需要输入密码了
现在,可以用VSCode连接试试,自动使用公钥认证了。