我公司的一位客户运行 IPSwitch sftp 服务器,他们不允许公钥身份验证,并要求我们每 90 天更改一次密码。
问题是,我看不到任何方法可以提前主动更改密码。发生的情况是,当密码过期后尝试登录时,您会收到身份验证错误并提示更改密码。由于我们的系统都是自动化的,我需要一种自动更改它的方法。
我想我只是写一些东西来捕获错误并启动一个脚本来尝试登录,从 stdout/stderr 读取密码提示,并通过 stdin 发送回新密码,这样我就一切顺利了。
这种方法的问题在于,常规 ssh 客户端使用单独的 tty 来发送密码提示/等...,因此我正常的 stdout/stderr 捕获不起作用(请参阅答案http://goo.gl/p1xOPu以获得解释)。
我可能最终会按照该答案中所述的方式设置伪终端,但看起来它非常复杂,所以我想我会看看这里是否有人有更好的想法。
谢谢 :)