#ssh #command
#ssh #команда
Вопрос:
Я огляделся вокруг и, казалось, не мог найти ответа на свои вопросы. Я ищу способ автоматизировать / написать набор команд SSH для экспорта файлов конфигурации с наших маршрутизаторов Sonicwall. У меня установлены команды sonicwall, но у меня возникают проблемы с их автоматизацией. Когда я подключаюсь к одному из наших sonicwalls по SSH, мне предлагается ввести имя пользователя. Я ввожу имя пользователя, а затем снова получаю запрос на ввод имени пользователя и пароля. Как только я введу правильную информацию, я смогу выполнить экспорт конфигурации. Ниже приведен пример компоновки. Пожалуйста, дайте мне знать, если кто-нибудь знает способ автоматизировать / написать сценарий этого. заранее спасибо
Пользователь:%username%
Пользователь: %username%
Пароль: %пароль%
команда: экспортировать настройки ftp %ftpserver% %ftpuser% %ftpPassword% backup.exp
Ответ №1:
Используйте ключи вместо идентификатора пользователя / пароля. http://pkeck.myweb.uga.edu/ssh /
Комментарии:
1. Будет ли это работать с маршрутизаторами (sonicwall). Я прочитал статью, которую вы отправили, и в ней упоминаются только подключения к серверу.
Ответ №2:
Маршрутизатор ожидает имя пользователя SSH, но не пароль. Как только вы «войдете» под именем пользователя через SSH, Sonicwall запросит имя пользователя и пароль, используя свой внутренний механизм аутентификации. Обрабатывайте эти запросы точно так же, как и любые другие в командной строке Sonicwall. Вы можете передавать свои команды (включая имя пользователя / пароль) через стандартный интерфейс, например, так:
(echo -e 'adminnpassword'; sleep 1; echo tsr; sleep 2; echo logout; sleep 1) | ssh admin@10.50.14.41
Комментарии:
1. Я пытаюсь использовать plink.exe (командная строка putty) для выполнения этих команд и опубликованного вами кода не работает. Я немного изменил его, чтобы включить plink.exe перед -shh admin@1.2.3.4 адрес. Вся строка «-e’admin npassword’; режим ожидания 1; echo tsr; режим ожидания 2; выход из системы echo; режим ожидания 1)» отображается в приглашении пользователя. С этого момента сеанс ssh не отвечает. Как бы вы посоветовали мне это сделать? Наконец-то у меня есть время вернуться к этому сценарию, и я был бы признателен за любую помощь.
2. Предоставленные мной команды предназначались для оболочки Linux bash. Я бы использовал plink в Windows следующим образом:
plink -ssh -l admin -m commands.txt 10.50.14.41
который позволит вам войти в систему и выполнить команды в файле commands.txt . Первыми двумя командами в этом файле (по одной на строку) должны быть имя пользователя и пароль Sonicwall, за которыми следуют любые команды, которые вы хотите выполнить. Я не пробовал это, но теоретически это должно сработать.3. Да, я пробовал это, и это не работает. Я получаю сообщение об ошибке «ФАТАЛЬНАЯ ОШИБКА: сервер неожиданно закрыл сетевое соединение». Если мы не можем заставить это работать с plink.exe знаете ли вы какой-либо другой метод, которым я мог бы выполнить это, используя ssh и ОС Windows? Спасибо за всю вашу помощь.
4. Для этого я использую Cygwin в Windows — SSH-клиент, похоже, работает нормально. В зависимости от сложности того, что вы пытаетесь сделать, вы можете рассмотреть ссылку на ожидаемое расширение TCL.
Ответ №3:
Этот поток старый, но я наконец-то написал сценарий для этих глупых sonicwalls. Это не мой код, я не знаю, где я его нашел, но он работает, и вы можете заставить его делать что угодно. Просто измените IP и логин или что-то еще.
@if (@CodeSection == @Batch) @then
@echo on
set SendKeys=CScript //nologo //E:JScript "%~F0"
start putty -ssh admin@IP.IP.IP.IP 22
TIMEOUT /T 5
%SendKeys% "admin{ENTER}"
TIMEOUT /T 2
%SendKeys% "password{ENTER}"
TIMEOUT /T 2
%SendKeys% "restart{ENTER}"
TIMEOUT /T 2
%SendKeys% "y{ENTER}"
pause
@end
WScript.CreateObject("WScript.Shell").SendKeys(WScript.Arguments(0));
Ответ №4:
Попробуйте следующее…..
plink -ssh admin@10.20.30.10 < m.txt
< m.txt >
password
ping 1.1.1.1
tracerout 1.1.1.1
exit