●Preface
服务器很多时候都是部署在Linux远程机器上的,我们通常是SSH连过去然后用vim或者emacs去修改源文件。
这种方式对我来说很麻烦,因为我已经习惯了全宇宙最好用的C++IDE Visual Studio,离开IDE写代码实在太痛苦了。
所以我只能借助samba+sourceinsight的组合来勉强度日。这个组合其实是比较好的,只不过配置特别麻烦,实在是不想折腾。
这时,微软开发了一个VSCode的插件Remote-SSH,可以说是目前比较完美的解决了在windows下开发linux程序的问题。
Remote-SSH配置简单,界面可视化,你可以把他看做是带IDE的Putty。当然你也可以只把他当做一个远程ssh的连接工具来代替putty,xshell。
●本地安装SSH客户端
win10系统自带openssh,所以这一步可以省略。
win7系统需要安装git for windows,内部集成git bash带ssh客户端。
●安装Visual Studio Code
从官网下载安装 https://code.visualstudio.com/
●安装Remote-SSH
(1)VSCode左侧边栏上找到Extensions按钮,点击打开扩展插件面板。
(2)在扩展搜索栏中搜索到"Remote-SSH"这个插件,然后点击下载安装这个插件。
(3)此插件安装完毕后,侧边栏会出现一个名为"Remote-SSH"新的图标按钮。
(4)点击VSCode左侧边栏上的"Remote-SSH"图标按钮,打开"Remote-SSH"面板。
(5)在CONNECTIONS条目右边找到配置按钮图标[Configure],点击配置。
(6)此时会弹出一个下拉框,选择config配置文件保存路径,比如C:\Users\Administrator\.ssh\config
(7)点击编辑这个config文件,编辑代码如下示例:
Host njdaby #远程主机1别名alias,注意主机别名不能包含@符,否则会连接失败
HostName 117.78.41.7
User root
IdentityFile /c/users/Administrator/.ssh/id_rsa
#IdentityFile指定秘钥名称路径(按linux/bash路径格式),缺省路径为%HOME%\.ssh\id_rsa,其中%HOME%为bash用户根目录,通过windows的环境变量设置。
Host dev_tellfun #远程主机2别名alias
HostName 47.96.255.174
User root
IdentityFile /c/users/Administrator/.ssh/id_rsa
(8)保存配置文件后,上面保存的远程主机别名就出现在CONNECTIONS条目的下拉列表中。
(9)在CONNECTIONS下拉列表中点击需要连接的主机别名,开始连接远程主机。
如果希望连接时,不要输入密码,那么还需要在本地创建密钥,并把公钥复制到远程服务器上。
●本地PC上安装SSH密钥
(1)安装SSH
(2)打开本地DOS命令行
生成SSH秘钥对 :ssh-keygen -t rsa -b 4096 (-b 4096表示生成的rsa秘钥对的长度是4096个bit)
在执行完上述指令后,会在~\.ssh这个目录下生成:
id-rsa和id-rsa.pub两个文件, 第一个是私钥文件,第二个是公钥文件。
注:用户根目录(~)的绝对路径可以通过windows的环境变量HOME来设置,默认c:\users\administrator
●远程服务器配置
(1)检测ssh服务是否启动 : netstat -ntlp | grep ssh
(2)如果ssh服务没有启动 :/etc/init.d/ssh resart
(3)添加客户端公钥,将客户端的公钥文件中的内容添加到 vim /root/.ssh/authorized_keys。(该文件配置了允许连入的客户端的公钥)
(4)修改配置文件:vim /etc/ssh/sshd_config, 把PubkeyAuthentication配置为 yes 允许使用基于密钥认证的方式登录。
●注意事项
①使用秘钥连接ssh时,如果不指定秘钥路径,默认秘钥路径为%HOME%\.ssh\id_rsa,如果连接失败,就要检查确认该路径是否正确。
②vscode的配置文件config中,注意主机别名不能包含@符,否则会连接失败。