Mi collego a una macchina linux (centos 6.4) usando stucco. Tranne il fatto che posso impostare putty per usare solo un tipo di protocollo, come posso trovare la versione della connessione ssh corrente (SSH1 o SSH2)?
Mi collego a una macchina linux (centos 6.4) usando stucco. Tranne il fatto che posso impostare putty per usare solo un tipo di protocollo, come posso trovare la versione della connessione ssh corrente (SSH1 o SSH2)?
Risposte:
So che questa è una vecchia domanda, ma da quando mi sono imbattuto, non ho potuto resistere sulla pubblicazione di un modo alternativo.
Come suggerito da cstama,ssh -v localhost
puoi semplicemente usare ssh per te stesso 127.0.0.1 in modalità dettagliata, che visualizzerà il messaggio di debug dell'avanzamento. Sì, attraverso questo processo è possibile visualizzare la parte superiore della comunicazione e ottenere la versione SSH attualmente in esecuzione.
Ma se leggi la ssh man
pagina troverai -V
più utile l' opzione su ssh. Estratto la pagina man di ssh :
-V Visualizza il numero di versione ed esce.
-v Modalità dettagliata. Fa sì che ssh stampi i messaggi di debug sui suoi progressi. Ciò è utile per il debug di problemi di connessione, autenticazione e configurazione. Le opzioni multiple -v aumentano la verbosità. Il massimo è 3.
Quindi penso che sarebbe meglio semplicemente fare ssh -V
e ottenere qualcosa di simile a:
> ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
Spero che sia di aiuto.
Putty In Session, Logging, seleziona il pulsante di opzione "Pacchetti SSH e dati non elaborati". Seleziona il file di registro come putty.log in una posizione a tua scelta. Effettua la connessione. Tu dovresti vedere:
Event Log: Server version: SSH-2.0-OpenSSH_5.3
Event Log: Using SSH protocol version 2
Vedi sotto per i dettagli sul significato di SSH-2.0.
Altri metodi Potresti anche provare a utilizzare il client Telnet ma puntare alla porta 22:
telnet test1 22
Quando ti connetti vedrai:
Prova 192.168.144.145 ... Connesso al test1. Il carattere di escape è '^]'. SSH-2.0-OpenSSH_5.3
L'ultima riga è quella da cercare:
SSH-2.0-OpenSSH_5.3
Se dice SSH-2.0
che va bene, il server ssh a cui ti sei connesso supporta solo il protocollo SSH versione 2. Non supporterà le connessioni dai client del protocollo SSH V1.
Se comunque vedi:
SSH-1.99-OpenSSH_5.3
Quindi ciò significa che l'estremità del server supporta ancora il protocollo SSL versione 1. Ha qualcosa del genere nel suo sshd_config
file:
Protocol 1,2
Il protocollo 1 è vulnerabile e non deve essere utilizzato.
Quindi per capire bene. Se vedi SSH-2 quando telnet alla porta 22 del server remoto, puoi usare solo il protocollo ssh Versione 2 poiché il server non supporta il Protocollo 1.
Come da cstama risposta sopra, il flag -v mostrerà una linea:
debug1: Remote protocol version 1.99, remote software version OpenSSH_5.3
o:
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
Vuoi vedere version 2.0
lì.
Puoi ottenerlo abbastanza rapidamente usando netcat dal tuo computer locale, ad esempio:
$ nc [IP_ADDRESS] 22
SSH-2.0-OpenSSH_5.3
Mi piace di più:
$ echo ~ | nc localhost 22
SSH-1.99-OpenSSH_3.9p1
Protocol mismatch.
$
Il vantaggio qui è che può essere fatto in modo programmatico poiché la connessione non viene mantenuta aperta. Per Python, prova:
ssh_protocol = float(re.search(r"SSH-(\d.\d+)").group(1))
L'unico metodo di cui sono a conoscenza richiede che si disponga di privilegi sufficienti per visualizzare le voci del registro ssh /var/log/auth.log
.
$ echo $SSH_CONNECTION
127.0.0.1 12375 127.0.0.1 22
Il primo e il secondo campo della SSH_CONNECTION
variabile indicano l'IP sorgente e la porta sorgente della mia connessione. Accedendo grep
a questi valori /var/log/auth.log
, posso trovare la voce di registro da quando la mia connessione ssh è stata autenticata.
$ sudo grep -F ' from 127.0.0.1 port 12375 ' /var/log/auth.log | grep ssh
Jun 26 16:29:52 morton sshd[20895]: Accepted keyboard-interactive/pam for jim from 127.0.0.1 port 12375 ssh2
Questa voce del registro mi dice che la mia connessione attuale sta usando il protocollo ssh2. Naturalmente, se la sessione ssh è stata aperta per diversi giorni, la voce di registro potrebbe essere in /var/log/auth.log.0
un auth.log
file precedente .