wie man SSH-Befehl die Ausführung timeout
Ich habe ein Programm wie dieses:
ssh -q harigm@8.19.71.238 exit
echo "output value -->$?"
In dem obigen code, den ich versuche per SSH auf dem remote-server und versucht, zu überprüfen, ob ich mich verbinden kann oder nicht.
Ich habe einige Server, die Passwort-weniger ist aktiviert und einigen Servern für die Passwörter sind immer noch nicht deaktiviert.
So meine Sorge, wenn ein Kennwort vorhanden ist, wird Sie stecken in der gleichen Bildschirm das Passwort ein und es wird dort für unbegrenzte Zeit, ohne Exit-Logik.
Frage : Wie implementieren Sie den Timer für den obigen code, und wenn bleibt es in der gleichen Bildschirm für das Passwort. und beenden Sie mit einigen Fehler-code
2) Wann führe ich den oben aufgeführten code bekomme ich folgende Fehler-codes:
127 -- > I guess its for success
225 -- > for any error.
gibt es noch andere Fehlercodes, die andere als die oben genannten?
- eldos.com/documentation/sbb/documentation/..., findet einen link,
- Nicht bang, wenn das Passwort ist nicht im Lieferumfang enthalten & key-based auth ist nicht setup. Verwenden Sie erwarten scripts. (Suche nach ssh+expect auf google/stackoverflow, für ein template-Skript.)
- verwenden Sie -o PasswordAuthentication=no
- Danke @Vorsprung, Passwort-Problem ist gelöst, wenn Sie die info über die Fehler-codes der SSH-Befehl, bitte teilen
- In FreeBSD können Sie
man sysexits
zu sehen, die empfohlen exit-codes für die Programme. Ich weiß nicht, ob Sie unterscheiden sich im Betriebssystem. In der Regel wird ein exit-Wert von0
bedeutet "Erfolg", und alles andere ist eine Art des Scheiterns. - "ssh beendet sich mit dem exit-status des remote-Befehl oder 255, wenn ein Fehler aufgetreten" also, wenn es funktionierte, Sie bekommen 0 von der Ausfahrt. Wenn es eine Zeitüberschreitung, oder hast irgendeinen anderen Fehler bekommst du 255
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie wickeln den Aufruf
ssh
mit dertimeout
Befehl. Dietimeout
Befehl beendet mit code 124 wenn ein timeout Auftritt.Oder als Vorsprung hat kommentiert auf deine Frage (ich weis war die man-page!):
denen verweigert werden, die interaktive Passwort-Authentifizierung. Sie würden dann überprüfen Sie die exit-code.
Es klingt wie die Frage zu Fragen über "batch mode" - Verarbeitung mit einer Anzahl von hosts auf einmal (z.B. in einer Schleife). Die folgenden
ssh
Befehl wird einfach fehlschlagen, wenn der PKA-Wert ist nicht konfiguriert für einen bestimmten host (public-key-Authentifizierung -- die "Passwort-lose login erwähnt, die ursprüngliche Frage), so ist es gut für Skripte, die Sie nur wollen, um weiter ausgeführt zu werden, unabhängig davon, Probleme mit der Verbindung zu einem oder zwei hosts. Es wird auch nicht die Mühe mit all den Fragen, die über "are you sure you want to continue connecting" zu bisher unbekannten hosts (oder Sie können einfach fügen SieStrictHostKeyChecking no
zu Ihrem~/.ssh/config
für die). Zum Beispiel,Müssen Sie überprüfen Sie Ihre (client)
ssh
Mann Seite um zu sehen, ob diese Optionen (BatchMode
,ConnectTimeout
) unterstützt, obwohl.