今天记录两个心得收获:
- 找回保存在 MobaXterm 中的主机登录密码
- 在 macOs Termianl 中通过代理 ssh 到远程主机
找回密码
运维工程师最重要的工具就是终端软件,虽然 SecureCRT 功能强大,不过毕竟是收费软件,个人一般很少会购买使用。另外也有 putty 这个短小精悍的终端软件,但不支持标签是一个硬伤。
MobaXterm 是一个相较 putty 功能强大的终端软件,支持标签和保存主机列表和主机密码,并且免费版提供的功能足以支撑日常个人使用。MobaXterm 支持设置主密码,主密码是在打开软件的时候首先需要输入的,这样可以避免软件随意被其他人使用,毕竟很多时候我们都是把主机密码保存在软件中。另外也支持在会话中保存主机的地址、用户名、密码,这样对于我们经常使用的主机,就可以免去重复输入用户密码的过程。
时间久了,如果我们要用其他的终端登录主机,或者某些配置需要主机的用户口令时,免费版的 MobaXterm 没有提供查看密码的功能。
但是我自己找了下它的配置文件,在软件的同级目录下可以找到 MobaXterm.ini 这个文件,密码以密文的形式保存在里面。
我使用的是绿色版 MobaXterm ,版本为 Personal Edition v20.6 Build 4532
1 | [Passwords] |
通过面向搜索引擎解决问题,找到了一个开源的解密工具 how-does-MobaXterm-encrypt-password
运行程序需要本机具备 Python3 环境,我是在 macOS 下解密的,第一次执行会遇到下面编码的问题
1 | $ python3 MobaXtermCipher.py dec -p 8888 ibG9MTOdkcYd6w |
需要打开编辑器修改 MobaXtermCipher.py 将 ansi
修改为 gbk
,再重新执行一次就可以获取到明文密码。
macOS 下通过代理 ssh 到远程主机
本文的操作系统版本为 macOS Monterey Version 12.2.1
macOS 在系统偏好中设置的代理对 Terminal 无效,查到网上有些办法可以通过环境变量方式来支持 curl
、 wget
、 git
等命令的代理配置,自己测试后对于 ssh
命令无效,原来 ssh
有专门的参数,实际如果只是 ssh
使用代理,只要按照下面的命令执行即可:
1 | $ ssh -o ProxyCommand="nc -X 5 -x 1x.1x.1x.1x:1080 %h %p" root@1x.8.6.1 |