1

我正在尝试查看是否可以xdotoolexpect脚本移至。

我使用expect这个 spawn 命令并编写脚本

ssh root@IP_ADDRESS -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no

它等待:

expect "$login@$addr\'s password:"

换句话说,这是一个非常简单的脚本,让您ssh无需输入密码即可登录到服务器。但除此之外,expect它无法以“精确”的方式做事,我已经看到它反复发送错误的命令,而且对于简单的任务似乎不可靠。

我想知道也许xdotool可以做得更好。例如,如果xdotool可以以某种方式收听终端上的字符串并等待:

"$login@$addr\'s password:"

这可以做到吗?

我现在能想到的唯一方法是sleep在我的脚本中添加或类似的东西,让它等待登录,这可能会失败。

4

1 回答 1

2

尽管我非常喜欢xdotool和几乎所有Jordan Sissel 的脚本、配置文件、hacks 和应用程序(++ Jordan!),但我认为这不是xdotool您想要的。至于expecttcl,python并且perl脚本的变体和逻辑可以像那些语言允许的那样复杂和健壮。

我会重新访问脚本并尝试使其更正确地处理可能的错误和登录提示更改。我要做的第二件事是不允许 root 登录ssh(实际上这是我要做的第一件事)。如果您使用 SSH,则您拥有 SSH 配置文件、公钥加密、Kerberos、LDAP 和其他方法的全部功能,可以从安全策略和系统管理的角度使登录变得方便、安全和易于管理。

做所有这些,然后想想你可以如何使用xdotool- 因为xdotool岩石!

ps:查看ssh_config手册页:这里有许多安全方便的配置选项可用于您要实现的目标。

于 2013-08-19T18:31:39.127 回答