2011-11-07 4 views
2

J'ai regardé autour et je n'arrivais pas à trouver une réponse à mes questions. Je cherche un moyen d'automatiser/script un ensemble de commandes SSH pour exporter les fichiers de configuration de nos routeurs Sonicwall. J'ai les commandes sonicwall définies mais j'ai du mal à les automatiser. Quand je me connecte à l'un de nos murs acoustiques avec SSH, je suis invité avec un utilisateur. Je tape le nom d'utilisateur et puis je suis invité à nouveau pour un nom d'utilisateur et un mot de passe. Une fois que j'entre l'information correcte, je peux exécuter l'exportation de la config. Voici un exemple de mise en page. S'il vous plaît laissez-moi savoir si quelqu'un sait d'un moyen d'automatiser/script ceci. merci à l'avanceCommandes SSH - Automate/script

utilisateur:% username%

utilisateur:% username%

Mot de passe:% mot de passe%

commande

: les préférences d'exportation ftp% ftpserver%% ftpuser%% ftpPassword% sauvegarde .exp

Répondre

1

Utilisez les clés au lieu de l'ID utilisateur/mot de passe. http://pkeck.myweb.uga.edu/ssh/

+0

Cela ne fonctionne parfois pas sur les périphériques intégrés. – a3nm

+0

Est-ce que cela fonctionnera avec les routeurs (sonicwall). J'ai lu l'article que vous avez envoyé et il ne mentionne que les connexions au serveur. – Mpit52

1

Le routeur attend un nom d'utilisateur SSH, mais pas un mot de passe. Une fois que vous vous connectez avec le nom d'utilisateur via SSH, Sonicwall vous demandera un nom d'utilisateur et un mot de passe en utilisant son mécanisme d'authentification interne. Traitez ces invites comme n'importe quelle autre dans la CLI de Sonicwall. Vous pouvez passer vos commandes (y compris le nom d'utilisateur/mot de passe) via stdin comme celui-ci, par exemple:

(echo -e 'admin\npassword'; sleep 1; echo tsr; sleep 2; echo logout; sleep 1) | ssh [email protected]

+0

J'essaie d'utiliser plink.exe (ligne de commande putty) pour exécuter ces commandes et le code que vous avez posté ne fonctionne pas. Je l'ai légèrement modifié pour inclure le plink.exe avant l'adresse -shh [email protected] La ligne entière "-e'admin \ npassword '; sleep 1; echo tsr; sleep 2; echo logout; sleep 1)" s'affiche dans l'invite de l'utilisateur. À partir de ce moment, la session ssh est non-responsive. Comment suggérez-vous que je m'y mette? J'ai enfin le temps de revenir sur ce scénario et toute aide serait grandement appréciée. – Mpit52

+0

Les commandes que j'ai fournies étaient destinées au shell Linux bash. J'utiliserais plink sur Windows comme ceci: 'plink -ssh -l admin -m commands.txt 10.50.14.41' qui vous connectera et exécutera les commandes dans le fichier commands.txt. Les deux premières commandes de ce fichier (une par ligne) doivent être le nom d'utilisateur et le mot de passe Sonicwall, suivis de toutes les commandes que vous souhaitez émettre. Je ne l'ai pas essayé, mais en théorie cela devrait fonctionner. – PunctuallyChallenged

+0

Ouais j'ai essayé ça et ça ne marche pas. Je reçois un message d'erreur «ERREUR FATALE: connexion réseau inattendue fermée du serveur». Si nous ne pouvons pas faire fonctionner cela avec plink.exe, connaissez-vous d'autres méthodes que je pourrais utiliser avec ssh et Windows OS? Merci pour votre aide. – Mpit52

0

Ce fil est vieux mais j'ai finalement obtenu ces stupides scriptées SonicWALL. Ce n'est pas mon code, je ne sais pas où je l'ai trouvé mais ça marche et vous pouvez le faire faire n'importe quoi. Il suffit de changer l'adresse IP et la connexion ou autre.

@if (@CodeSection == @Batch) @then 

@echo on 
set SendKeys=CScript //nologo //E:JScript "%~F0" 

start \putty -ssh [email protected] 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));