Ich habe zwei Server mit SSH-Schlüsselaustausch verbunden. Jetzt kann ich mich auf dem Remote-Server ohne Passwort einloggen.SSH-Konnektivität mit SSH-Schlüsseln validieren
Jetzt möchte ich überprüfen, ob die Verbindung wirklich ohne Passwort funktioniert. Wie kann ich das tun?
Ich versuchte folgenden Ansatz, wo SSH sollte nach 10 Sekunden Timeout, ich werde seinen Return-Code erfassen. aber das tut es nie. Sobald es Timeout ist. Es bleibt bei der Passwortabfrage.
ssh -o ServerAliveInterval=10 -o ConnectTimeout=15 [email protected] exit
if [ "$?" -ne 0 ];then
echo "SSH keys no more working,you need to initiate keys exchange again!!"
exit 1;
fi
Case-I
Wenn jedoch SSH-Schlüssel nicht arbeitet dann und es nie Time-out und bleiben auf Passwortabfrage. Daher kann der Rückgabecode nicht erfasst werden.
ssh -o ServerAliveInterval=10 -o ConnectTimeout=15 [email protected] exit
Enter Windows password:
Fall-II
Wenn ich die IP-Adresse zur Verfügung stellen, die nicht pingable wird dann dieses approch funktioniert.
ssh -o ServerAliveInterval=10 -o ConnectTimeout=15 [email protected] exit
ssh: connect to host ip1.ip1.ip1.ip1 port 22: Connection timed out
Benötigen Sie bei der Bestimmung helfen, ob SSH-Verbindung kennwort weniger weit oder nicht.
Ich rate Ihnen, 'ssh -v' zu tun. Dadurch erhalten Sie eine Debug-Ablaufverfolgung darüber, welche Art von Authentifizierung ssh verwendet (insbesondere wenn der öffentliche Schlüssel auf Ihrem Host vorhanden ist). – oliv
@Cyrus, Gleiches Ergebnis..Kommando wird nie beendet. –