【发布时间】:2020-03-04 18:49:27
【问题描述】:
我制作了一个 bash 脚本,通过 SSH 使用 office365 IP 自动更新 Cisco ASA 上的对象组。
我从 MS 获取 IP,为 ASA 构建正确的命令语法,并将所有命令写入一个文件(现在 90 行,但由于这是动态的,它可以增长或缩小)。然后我想将文件中的命令推送到 ASA:
cat outfile.txt | sshpass -p "Password" ssh -t -oStrictHostKeyChecking=no foo@1.1.1.1
但是 sshpass 在第 70 行之后停止发送命令。 所以 outfile.txt 有 90 行,但无论我尝试在哪个主机上“部署”命令,它只会发送前 70 行。 之后我得到一个
Connection to 1.1.1.1 closed by remote host.
在防火墙上,我看到来自服务器的 TCP 重置,但正如我所说,在哪个主机(尝试不同的防火墙、路由器和其他服务器)上都没有关系,我尝试它不会发送超过前 70 行.
有人为我的问题找到了解决方案,或者有其他方法可以解决我的问题吗?
谢谢
【问题讨论】:
-
您是否使用手动复制和粘贴检查了此配置?尝试在命令“ssh -o ConnectTimeout=seconds”中增加 ssh 会话的超时时间。 sshpass 仅用于密码,在您的情况下,所有作业都使用“cat”读取配置文件,使用 ssh 进行外部连接。
-
是的,我通过粘贴尝试了配置,它确实有效。我也尝试过 ConnectTimeout 但它没有用,我相信这个问题与超时无关,因为 ssh 只是关闭连接而不是超时或任何东西
标签: linux bash ssh sshpass asa