0%

win10 UWP ssh 客户端 Token2Shell/MD 简介

软件简介

win10 应用商店有一款很棒的 ssh 客户端软件:Token2Shell/MD,是一款 UWP 软件。我曾在几年前它限免的时候安装过,其实当时还不知道是干什么用的。现在它是我的主力 ssh 软件,简洁美观,轻量快速,功能强大。

现在这款软件名字改成了 Token2Shell,而且并不是在 Token2Shell/MD 基础上的更新,而是一个新软件,意味着我并不能从 Token2Shell/MD 更新到这个新版本,想要获得这个软件还需要重新购买。

官方对此的解释是:

In order to add more advanced features, we have upgraded our Windows developer account and released a new app that’s simply named Token2Shell. But, due to the limitations of Microsoft Store, the new app cannot be delivered automatically to the current owners of Token2Shell/MD and it also requires a new purchase.

大概意思是他们升级了 Windows 开发者账户,并发布了新版本,但由于微软商店的限制,新版本不能自动分发到当前 Token2Shell/MD 拥有者的账户,因此想要获取新版本,需要重新购买。不知道到底是谁的锅,为此不少 Token2Shell/MD 用户在新软件底下差评。实际上这款软件是很棒的,也提供试用,大家可以体验一下。旧版的软件已经在商店下架了,但我通过抓包软件获取了它的安装包,在 这里 提供给大家试用,如果喜欢请在商店购买正版,可以获取官方的更新支持。

功能介绍

扯远了,下面介绍一下这个软件。实际上它不仅仅是一个 ssh 客户端,它支持 SSH2, TELNET, TCP Direct, Docker, Serial, Bluetooth/RFCOMM,功能十分强大。

很硬核的界面,它支持终端的多种主题,语法高亮效果很棒,配合 UWP 风格的 UI,看起来赏心悦目:

可以通过 quick connect 快速建立 ssh 连接:

image.png

可以在地址栏中保存链接,点击即可快速连接远程主机:

image.png

htop(进程可视化显示工具)在 Token2Shell/MD 中的显示效果:

image.png

支持 SSHX11 Forwarding 功能,配合本地的 X11 软件,实现通过 SSH 运行远程主机的 GUI 程序:

image.png

连接本地虚拟机

你可以用 Token2Shell 远程管理你的 Unix 或 Linux 主机,如果你想用它连接本地的虚拟机,需要一些技巧。

由于 UWP 的安全机制,应用默认不能使用 IP 环回地址进行进程间通信,如果你直接使用 Token2Shell 连接本地的虚拟机,可能会遇到如下连接超时问题:

image.png

对于一些虚拟机软件(如 Hyper-V),添加 Token2Shell/MD 到 Windows loopback 免除列表,就可访问虚拟机了,但对于其他虚拟机软件(如 Virtual Box),你可能需要采用其他措施。

第一种方法 是使用 Windows 内置的 netsh 命令创建网络流量代理 socket。举个例子,假设你的虚拟机 IP 地址是 192.168.56.101,你想用 22 端口连接它的 ssh server,可以运行如下 netsh 命令行(管理员身份):

1
netsh interface portproxy add v4tov4 listenaddress=localhost listenport=22 connectaddress=192.168.56.101 connectport=22 protocol=tcp

命令完成之后,你可以通过连接 localhost22 端口,连接虚拟机。你也可以更改虚拟机 ssh 的监听端口,防止在存在多个虚拟机时出现端口占用。

注意,netsh 添加的这个条目,重启系统时也不会删除,你需要使用 netshdelete 命令删除它:

1
netsh interface portproxy delete v4tov4 listenaddress=localhost listenport=22

可以使用 show 命令,显示当前活动的 portproxy(端口代理)设置:

1
netsh interface portproxy show all

第二种方法 ,可以使用 enableloopbackutility.exe 这款软件来实现上述功能。

image.png

  1. 勾选 Token2Shell/MD, 点击 Save Changes
  2. ssh 登陆虚拟机时,使用 127.0.0.1 本机地址:ssh username@127.0.0.1
    也可以使用虚拟机软件的端口映射功能,将虚拟机的 22 号端口映射到主机的某个端口,例如 10000,在登陆的时候使用:ssh -p 10000 username@127.0.0.1 指定端口登陆虚拟机

另外,由于上面所述原因,UWP 软件默认无法使用 ss 代理科学上网,你可以用 enableloopbackutility.exe 勾选这些软件实现科学上网。