Überprüfen Sie die SSH-Authentifizierung mit Bash Shell Script? [Duplikat]

Oct 20 2020

Ich muss die SSH-Authentifizierung auf einigen Servern testen. Angenommen, die IP-Adressen dieser Server werden in einer ip.txtDatei gespeichert

Ich habe ein ähnliches Skript in Python mit paramikound netmikoModul geschrieben.

Das Problem muss ich jetzt von einem Server aus testen, auf dem keine Python3- oder Internetverbindung besteht.

Daher ist die Installation von Tools oder Python-Modulen von Drittanbietern hier nicht möglich.

expect, sshpassSind auch nicht zur Verfügung.

Das einzige, was verfügbar ist, ist Bash-Skript. Ist es möglich, dies nur auf Bash zu tun? Wie gehe ich passwordzum ssh über?

Antworten

4 user14251572 Oct 20 2020 at 13:19

Ja es ist möglich.

#!/bin/bash

hostname='127.0.0.1'
username='u'
password='p'

command='ls -l'

echo_pass="~/echo_pass"

echo "echo $password" > "$echo_pass"
chmod +x "$echo_pass" SSH_OPTIONS='-o StrictHostKeyChecking=no' DISPLAY=localhost:0.0 SSH_ASKPASS=$echo_pass

export DISPLAY
export SSH_ASKPASS 

setsid ssh $SSH_OPTIONS $username@$hostname $command \
&& echo "\n $hostname | SSH OK\n" \ || echo "\n $hostname | SSH PROBLEM\n"

Ausgabe

$ ./script.sh total 0 127.0.0.1 | SSH OK $