我正在尝试编写一个 shell 脚本 (Bash) 以登录到 SonicWall 防火墙设备并发出命令来执行设备规则集的自动备份。我更喜欢在 Bash 中执行此操作,但我会接受 python、perl、except 或 applescript 解决方案。如果不能在 bash 中完成,请提及。
问题:
1.) 防火墙上的 SSH 服务器是自定义的,用户名和密码必须在发出后指定
$ ssh server.com
所以无论你发出什么用户名,例如
$ ssh admin@server.com
SSH 服务器在之后仍然显示用户名和密码框
2.) SSH 服务器很小,我不能使用公钥
我尝试使用here-document,但它不起作用,并导致立即“连接被远程主机关闭”。
我需要执行的命令采用以下形式:
export preferences ftp "ftp.server.com" "user1" "mypassword" "output.exp"
连接给了我这个:
$ ssh admin@server.com
Copyright (c) 2010 SonicWALL, Inc.
User:
发出用户名后,它会显示密码提示:
User:user1
Password:
我尝试了here-document无济于事。
$ ssh server <<+
user1
mypassword
export preferences ftp "ftp.server.com" "user1" "mypassword" "output.exp"
exit
+
Pseudo-terminal will not be allocated because stdin is not a terminal.
Connection to 10.1.1.1 closed by remote host.
我也尝试使用 echo 来输入命令,但这也不起作用。
手动输入命令就可以了。
对此的任何帮助将不胜感激。