求助,有什么办法能够控制 cmd/powershell 进行 ssh 自动化登录?

133 天前
 aizya

遇到一个自动化登录的问题,不是简单的 ssh 免密登录哈,要求如下:

环境:Windows10

需求: 输入 ssh 登录系统后,会自动弹出一个 SHA256 的码,需要能够获取到这个码,再调用一个外部的 REST 接口获取动态密码后,点击 YES,输入密码,进入 Linux 系统。

C:\Users\xxx)>ssh root@192.168.xxx.xxx
The authenticity of host '192.168.xxx.xxx (192.168.xxx.xxx:)’can't be established
ED25519 key fingerprint is SHA256:edVhpWttoR1W/30HxIn2BiefgyDj6YZuxxxxr2YNo.
This key is not known by any other names
Are you sure you want to continue connecting(yes/no/[fingerprint])?yes

困难:1. 如何获取 cmd/powershell 中展示内容? 2. 如何自动控制 cmd 输入密码?

希望有大哥能提供一点思路,最好是用 Python 方案。

2102 次点击
所在节点    程序员
25 条回复
aizya
133 天前
@LonnyWong 好方法,我试试,感谢!
LonnyWong
133 天前
@aizya #21 如有需要,我可以修改一下 tssh 。欢迎加入 QQ 群详聊,群号在 tssh 的 github 首页最下面。
chf007
133 天前
这种应该是自定义的 PAM 集成了二次校验,看看官方手册有没有非交互式的参数可用,比如 --code=xxx 啥的,或者自已有权限的话,干脆禁用掉二次验证呗
aizya
124 天前
@LonnyWong #20 结帖了,感谢 LonnyWong , 最终是使用 tszsz-ssh https://github.com/trzsz/trzsz-ssh ,配置了一个#!! OtpCommand1 实现了动态验证码的获取。 🎉
LonnyWong
124 天前
#24 具体可看 https://github.com/trzsz/trzsz-ssh/blob/main/README.cn.md#%E8%AE%B0%E4%BD%8F%E7%AD%94%E6%A1%88 这个文档,tssh 将在 v0.1.22 正式支持,在此之前可以 go install github.com/trzsz/trzsz-ssh/cmd/tssh@main 这样安装。

自己实现获取动态密码的程序,指定 %q 参数可以得到问题内容,将动态密码输出到 stdout 并正常退出即可,调试信息可以输出到 stderr ( tssh --debug 运行时可以看到 )。配置举例(序号代表第几个问题,一般只有一个问题,只需配置 OtpCommand1 即可):

Host custom_otp_command
#!! OtpCommand1 /path/to/your_own_program %q
#!! OtpCommand2 C:\python3\bin\python C:\your_python_code.py %q

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1057377

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX