0%

VSCode使用ssh-key远程登录Ubuntu

兼谈使用SSH转发加快教研室网上冲浪速度 Mobaxterm挺好用的,只是那个文本编辑器不舒服。 试着用一下VSCode的remote-ssh 通过ssh-key登录就不多讲了[1]

Mobaxterm设置SSH密钥登录

ssh-keygen生成密钥之后在Mobaxterm的SSH设置找到Advanced SSH Setting里勾选import SSH key可以直接导入密钥。 退出再登录显示这样

1
Authenticating with public key "Imported-Openssh-Key: id_rsa"

就是成功了(失败会提示这样Server refused our key)

VSCode设置SSH密钥登录

装Remote-ssh插件,然后左边框会有个小电脑的图标,点那个图标,再点SSH TARGETS的设置(Configure),进行配置 它有个配置文件,一般在C:/Users/<username>/.ssh下面的config 编辑它的配置文件,Host随便填,HostName填ip,User填用户名,IdentityFile填私钥路径,Port填端口(默认22可以不填) (要是认证失败什么的,建议把那些.ssh文件夹底下的文件删了,比如known_hosts)

1
2
3
4
5
Host workstation
HostName hostname
User user
IdentityFile C:/Users/XXX/.ssh/id_rsa
Port 22

连接的时候可能会让你手动在termial里的信息 这样应该就行了, 不用每次输密码了。看到那个

什么?想用密码不想用ssh-key密钥登录,不能保存密码🐴? 您好,官方文档说不能 >Yes, you should be prompted to enter your token or password automatically. However, passwords are not saved, so using key based authentication is typically more convenient

(当然这里是新出的功能,bug当然少不了,我就遇到过这样的, 一般遇到问题先升一下最新版或者用insider试试,再不行就去GitHub提issue) 其他的问题找官方文档[2]看看,貌似可以SSH端口转发

远程SSH的VSCode插件是单独的,可以自行安装 如果你要配置多台主机SSH,在配置文件里并列加配置就行了

1
2
3
4
5
6
Host workstation
HostName hostname
User user
Host Server
HostName hostname
User user

SSH端口转发

老网民很熟悉的网上冲浪手段之一就是SSH Tunnel[3]。当只开了22端口的时候可以用这种方法绕过防火墙用TCP之类的,当然,这种方法曾经也用来突破那个巨大的 防火墙 。 今天我突发奇想,看到工作站和服务器的专用线路的速度贼快啊,专用线路从来不低于45Mb/s不高于50Mb/s的速度毫不含糊,还有公网IP。 而102网吧由于老板太抠,四个人用一个路由器,辣鸡校园网网速10M/s都跑不到...

使用Mobaxterm和SwityOmega插件可以满足大部分需求

MobaXterm里选Tools > MobaSHHtunnel > New SHH tunnel > Dynamic Port forwarding (SOCKS proxy)

那个Dynamic Port 是动态转发,不是v2ray那种用来防止被封的动态端口,就是你本地的端口会被转到服务器上相同的端口,是sockets5代理 配置你的端口和密钥(最好把那个autostart和Autoconnect也选上),然后到SwityOmega之类的工具里面填上相应的端口,就可以愉快的上网了。从浏览器的IP查询网站看一下IP,已经是服务器的IP了

更新,看错了,忘了分Mbps和MBps了,实际上快不了多少,只有6MBps/s。但是没人跟我抢,自己走专线还是快一点的。

终端的命令可以看这篇,不多说了[4]

突然意识到

为什么要用SSH呢,现在不用担心被FIREWALL制裁, 流量特征明显的WireGuard可以用了呀... 有空试试这个闪闪发光的新生代VPN, 底层貌似是UDP,红龙LOGO挺拉风的(跑题了 WireGuard据说要加到新的Linux Kernel里面,但是现在教研室的老Ubuntu只能自己装(这个我18年就听说了要加进kernel啦,连Linus都说好要加辣[5]然而鸽到现在,还是没加,据说作者在搞windows的,现在做的差不多了,要回来折腾Linux了) 之前WireGuard由于流量特征太明显就换了v2,现在试试这个 安装比Openvpn简单,Ubuntu直接PPA装就行了(需要root权限)

1
2
3
sudo add-apt-repository ppa:wireguard/wireguard
sudo apt-get update
sudo apt-get install wireguard

win10的官方客户端已经出了,之前18年那会我还用的Tunsafe,设置参考这里[6] 听八卦说Tunsafe和WireGuard作者还有过撕逼,此处不表

其他

开机自启

1
systemctl enable [email protected]

使用VSCode愉快的写C/C++

装C/C++和coderunner插件就行了,现在可以自动配置运行和调试的文件了(就那个以前一堆坑还经常改一更新就配置失效的launch.json和config.json)

VSCode连接Docker

安装Docker和Docker compose插件(在远程里面),然后直接用就行了


  1. 1.设置 SSH 通过密钥登录 ↩︎
  2. 2.官方文档:Remote Development using SSH ↩︎
  3. 3.墙与梯的较量 ↩︎
  4. 4.实战 SSH 端口转发 ↩︎
  5. 5.Linus在邮件中回复说: >Btw, on an unrelated issue: I see that Jason actually made the pull >request to have wireguard included in the kernel. > >Can I just once again state my love for it and hope it gets merged >soon? Maybe the code isn't perfect, but I've skimmed it, and compared to the horrors that are OpenVPN and IPSec, it's a work of art. 见https://lkml.org/lkml/2018/8/2/663 ↩︎
  6. 6.Setting up WireGuard on Windows ↩︎