SSH连接Ubuntu 12.04虚拟机的尝试

VS Code Remote SSH初体验

Posted by John Mactavish on June 14, 2019

前言

因为我的wsl上的arm-linux-gnueabi-gcc版本太高,编译出来的程序无法在arm最小Linux系统上运行,总是会报错fatal :kernel too old,我之前一直在使用VMWare的Ubuntu 12.04虚拟机进行Exynos 4412的程序交叉编译。这是讯为(arm开发板提供商)给的已搭建好开发环境的虚拟机镜像。但是,虚拟机的分辨率有问题,让我用得很难受,于是我开始考虑使用SSH进行远程连接操作。

过程

讯为给的软件资料里包括有Security SSH,但我是个颜值控哎,这么丑的图形界面让我怎么用。于是我开始在网上寻找更好用,更好看的SSH工具。考虑过FinalShell,明显比上一个要好一些,但我还是不是很满意,然后我就突然想到了新出的VS Code Remote SSH。Win10默认装有SSH客户端,在所有设置->应用->管理可选功能中可以添加SSH服务器功能,它以服务形式出现。打开任务管理器,切换到服务,找到ssh,此时还无法开始,选择打开服务,将OpenSSH由禁用切换为自动,这样就可以打开服务了。

然后在VS Code上安装Remote SSH插件,它不支持密码登陆,必须使用SSH-Key。可以使用手动操作:在主机上生成key后默认放在~/.ssh中,将public key复制到虚拟机的~/.ssh中,并将其添加到同目录的authorized_keys文件中(自行touch),即命令 cat id_rsa.pub > ./authorized_keys 也可以进行(在Win10环境命令行中) cat ~/.ssh/id_rsa.pub | ssh root@192.168.75.130 “cat >/home/username/.ssh/authorized_keys” (也许这提供了通过SSH简单的传递文件的方法) 切记要修改.ssh文件夹及文件的权限(700 -rwx——)以及拥有着,就是因为这个导致我后面VS Code连接时一直显示Confirming that Ubuntu is reachable …而无法正常连接。谁让我把username的home下的.ssh拥有着设为了root了,权限是针对root的,username自然无法使用连接。

然后修改主机的.ssh文件夹中的_config,注意Hostname是IP Address而Host才是你给它起的名字。 然后Remote SSH连接,damn,又报错Downloading VS Code Server failed. Please try again later.在Stack Overflow找到了解决方案[https://superuser.com/questions/1434294/how-i-resolve-downloading-vs-code-server-failed-while-using-vs-code-on-macos],Remote SSH会在虚拟机中用wget下载所需的Sever,因为证书检查的问题会下载失败。我尝试在username的home下创建.wgetrc文件并echo check-certificate=off > .wgetrc然后重启,结果还是不行。

@end

```

最后附上GitHub:https://github.com/gonearewe