J'ai une liste de serveurs:
cat list.txt
10.10.10.10 servera
10.11.10.10 serverb
Comment puis-je vérifier que je peux me connecter via ssh ou non? Je veux dire par défaut que je devrais pouvoir me connecter via la clé ssh auth .., donc en bref, j'ai besoin d'une solution qui trie les lignes (serveurs) dans le list.txt comme ceci:
- serveurs que je peux me connecter via la clé ssh
- serveurs qui demandent le mot de passe (bien sûr le mot de passe est inconnu ..)
- serveurs inaccessibles
ping
n'est pas vraiment un bon indicateur. Il existe de nombreuses configurations qui autorisent lesssh
connexions mais ne répondent pas aux pings.Réponses:
Vous pouvez le faire avec une combinaison de l'
BatchMode
option et "analyser" la sortie. (ssh
renvoie toujours 255 s'il ne parvient pas à se connecter pour une raison quelconque, vous ne pouvez donc pas utiliser le code de retour pour distinguer les types d'échecs.)Si cette
BatchMode
option est activée, aucune invite de mot de passe ni aucune autre interaction n'est tentée. Par conséquent, une connexion nécessitant un mot de passe échouera. (J'y ai également mis unConnectTimeout
qui devrait être ajusté pour répondre à vos besoins. Et j'ai choisi des noms de fichiers vraiment mauvais.)Vous pouvez détecter d'autres types d'erreurs (comme une clé publique de serveur manquante) si vous avez besoin d'une classification plus détaillée. Si vous avez besoin des résultats dans un seul fichier trié, il suffit de
cat
regrouper les différents fichiers de sortie comme bon vous semble.la source
Recherchez les différents outils qui automatisent l'exécution de commandes sur plusieurs hôtes via ssh. Par exemple, avec Mussh :
Massez la sortie au besoin.
Note latérale: pourquoi stockez-vous des adresses IP
list.txt
? Les noms de serveur suffisent. Si les noms que vous souhaitez utiliser ne sont pas les noms DNS, utilisez lesHost
directives dans~/.ssh/config
.la source
attend fournira une entrée à vos commandes interactives. Le client ssh avec l'indicateur -v vous indiquera les méthodes d'authentification acceptées par le serveur. Si vous obtenez l'invite interactive, fermez-la. Faites ce que vous voulez, vous avez tout ce dont vous avez besoin.
Idem, un seul ordre pour les gouverner tous, et dans l'obscurité, les lier ... Hum.
la source
La commande mussh ne produira que des erreurs, vous pouvez donc simplement l'exécuter sans débogage.
la source