最近一直在Windows主机环境下的VM虚拟机Linux中玩儿好玩儿的,,一直用ssh,不太想折腾VIM了,,,尝试一下VSCode 的Remote Development
扩展,这个扩展还是微软自己写的.
安装扩展
安装Remote Development
扩展,其它的Remote-SSH会自动安装,若不自动安装,请手动按照截图安装.
安装完成后,点击左下角,就可以出现如图的命令.这表示扩展已经安装完成
配置
Linux上需要安装ssh服务器,,,这个是必须的,需要支持 用户名/密码 或 密钥 方式,在配置之前,,您需要保证在命令行正常连接上linux
注意: 如果命令行提示ssh命令不存在,请安装git,或者open-ssh,并把ssh.exe所在的目录添加到环境变量中,继续下去之前,,请确保您已经可以实现上图(通过cmd命令行执行ssh,连接linux)**
上面提到过,,在VSCode中我们也可以通过用户名密码或者密钥认证连接到Linux.我们分别来实现
用户名/密码认证
配置用户名/密码认证 需要编辑一下VSCode的settings.json文件,打开的方式如下图,点击设置,滑动鼠标,找到任意一个在settings.json中编辑
点进去就行
. 添加 "remote.SSH.showLoginTerminal": true
,
阴影部分为新添加的(注意逗号)
配置完成后,可以开始我们的连接了.
根据图片顺序打开config文件,并编辑,,,要注意该文件所在的目录(每个人的用户名可能有所不同),因为一会儿还会用到.
弹出一个新窗口,根据提示,输入linux的密码
输密码,输密码......直到出现
已经连接上了 文件->打开文件夹(或者文件),可以显示出linux的文件夹(或者文件)..
提示输入密码的时候,,就输密码,,,一直输一直爽.
根据提示,,这个shell不要关闭...关闭连接就断了.....
根据上面的步骤,相信已经成功的连接上linux了.但是我们发现,每次输入密码简直太太太...烦人了.并且需要输入好几次,有没有好一点的方法呢,当然有!,那就是采用公钥.
密钥认证
首先,,我们用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
,括号中的请替换为您的Linux用户名,请一定要按照这种格式登陆,一定要输入用户名和IP,不要只输IP
这次登陆,惊喜的发现 *不需要输入密码了?,,,如果还需要输入密码,,那就检查一下哪里没有做对.
现在,可以用VSCode连接试试了
稍等一下,,自动使用公钥认证.不需要输密码就可以直接使用了!