市面终端工具一大堆,最开始我使用Xshell。但是这个家伙经常需要更新,不更新还不能用。换了几个国产开源终端工具也是有这样那样的问题。我就想简简单单的终端管理工具。今天看了看Windows终端,仔细研究一番觉得有了这个就可以抛弃终端工具了,至少能满足我的需求。
这里说明一下,Windows终端需要Windows 10 1809版本或者更高版本的操作系统,以达到最好的支持。
在Windows终端中执行ssh命令就可以连接需要的Linux。但这种方式没法保存标签,而且我的自己维护的Linux都是非标准SSH端口、公钥认证,这样一来每次连接太繁琐。通过仔细的研究发现终端里可以添加配置文件,每一个配置文件就相当于一个标签配置。这样一来就相当于终端可以保存标签了。
正题开始,首先找到终端的设置页面,就在顶部那个向下的小箭头里。
在“设置”页面中,最下方有“添加新配置文件”的按钮,点击按钮,然后在右侧页面点击“新建空配置文件”。
名字按照自己的需求起名,然后把“Windows PowerShell”配置文件里的命令行的内容复制到新建的配置文件的命令行里。
然后在这命令行后面加上ssh连接命令就可以实现终端标签连接指定Linux系统了。
标准ssh连接命令:ssh username@192.168.1.2
如果你也像我这样使用非标准端口,且使用公钥验证连接的话,请使用下面的命令。
加强ssh连接命令:ssh -p 12345 -i "E:\pubkey\pkey" username@192.168.1.2
-p参数表示端口号,-i表示指定私钥文件路径。
详细的命令行内容:%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe ssh -p 59643 -i "E:\pubkey\pkey" username@192.168.1.2
配置后的页面如下图:
在下面的“其他设置”中点击“高级”,然后将“关闭行为”设置为“仅在进程成功退出时关闭”,这样在你退出Linux后标签窗口会自动关闭。
完成这些配置后就可以保存配置文件,然后使用标签进行Linux连接了。
这时候使用公钥验证的方式大概率会出现下面的错误提示,并连接失败。
这个问题是因为私钥权限太开放了,Windows的OpenSSH客户端拒绝加载导致的,需要缩小私钥文件的权限。
打开私钥文件属性,“安全”-“高级”,点击“禁用继承”,再选择“从此对象中删除所有已继承的权限。”
删除所有继承后,点击“添加”按钮,仅添加当前用户,然后给当前用户赋完全控制权限。
确保权限主体框里有且仅有当前用户。
缩小私钥文件权限后再尝试使用之前创建的配置文件连接Linux,发现已经可以正常连接了。我的私钥配置了密码,所以下图中的第一步需要确认私钥密码。
至此使用Windows终端连接Linux已经搞定了。但是肯定有搞事情的人会说这样没法上传/下载文件了。
实际在Windows终端中可以使用scp命令。标准的scp命令我不敲了。我这里仅针对非标准端口、使用公钥验证的方式举例说明一下scp命令。
上传:scp -P 12345 -i "E:\pubkey\pkey" E:\test.file username@192.168.1.2:~
下载:scp -P 12345 -i "E:\pubkey\pkey" username@192.168.1.2:~/test.file E:\files
后面我会用Python写一个上传下载的小程序来简化这个过程,也可能就没有后面了,总之……嗯……敬请期待!