Como posso encontrar a versão atual do protocolo ssh da conexão atual?

28

Eu conecto a uma máquina linux (centos 6.4) usando massa. Exceto pelo fato de que eu posso configurar o putty para usar apenas um tipo de protocolo, como posso encontrar a versão de conexão ssh da corrente (SSH1 ou SSH2)?

    
por codiac 12.10.2013 / 09:03

5 respostas

32

Quando estiver em você, diga:

ssh -v localhost

ele informará a versão exata do servidor.

    
por 12.10.2013 / 10:08
11

Putty Em Session, Logging, selecione o botão de opção "SSH packets and raw data". Selecione o arquivo de log como putty.log em um local de sua escolha. Faça a conexão. Você deveria ver:

Event Log: Server version: SSH-2.0-OpenSSH_5.3
Event Log: Using SSH protocol version 2

Veja abaixo os detalhes sobre o que significa o SSH-2.0.

Outros métodos Você também pode tentar usar o cliente telnet mas apontar para a porta 22:

telnet test1 22

Quando você se conectar, verá:

Experimentando 192.168.144.145 ... Conectado ao test1. O personagem de fuga é '^]'. SSH-2.0-OpenSSH_5.3

A última linha é a que você deve procurar:

SSH-2.0-OpenSSH_5.3

Se ele diz que SSH-2.0 é bom, o servidor ssh ao qual você se conectou suporta apenas o Protocolo SSH Versão 2. Ele não suportará conexões de Clientes do protocolo SSH V1.

Se, no entanto, você vir:

SSH-1.99-OpenSSH_5.3

Em seguida, isso significa que o servidor final ainda suporta o protocolo SSL versão 1. Tem algo parecido com isso em seu arquivo sshd_config :

Protocol 1,2

O protocolo 1 é vulnerável e não deve ser usado.

Então, para entender isso. Se você vir o SSH-2 quando fizer telnet para a porta 22 do servidor remoto, só poderá usar o protocolo ssh Versão 2, pois o servidor não suporta o Protocolo 1.

De acordo com a resposta cstamas acima, o sinalizador -v mostrará uma linha:

debug1: Remote protocol version 1.99, remote software version OpenSSH_5.3

ou:

debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3

Você quer ver version 2.0 lá.

    
por 12.10.2013 / 17:45
9

Eu sei que esta é uma pergunta antiga, mas desde que me deparei, pude resistir em postar uma maneira alternativa.

Como o cstamas sugeriu que você pode usar ssh -v localhost simplesmente ssh para o seu próprio 127.0.0.1 no modo verbose, que exibirá a mensagem de depuração do progresso. Sim, através deste processo, você pode ver a parte superior da comunicação e obter a versão do SSH em execução no momento.

Mas se você ler a página ssh man , você encontrará a opção -V em ssh mais útil. Retirado a página man do ssh :

-V' Display the version number and exit.

-v' Verbose mode. Causes ssh to print debugging messages about its progress. This is helpful in debugging connection, authentication, and configuration problems. Multiple -v options increase the verbosity. The maximum is 3.

Então, acho que seria melhor simplesmente fazer ssh -V e obter algo semelhante a:

ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

Espero que isso ajude.

    
por 18.08.2016 / 10:13
4

Você pode obter isso rapidamente usando o netcat da sua máquina local, por exemplo:

$ nc [IP_ADDRESS] 22
SSH-2.0-OpenSSH_5.3
    
por 01.03.2018 / 04:32
2

Eu gosto mais disso:

$ echo ~ | nc localhost 22
SSH-1.99-OpenSSH_3.9p1
Protocol mismatch.
$

O benefício aqui é que isso pode ser feito de forma programática, já que a conexão não é mantida aberta. Para Python, tente:

ssh_protocol = float(re.search("SSH-(\d.\d+)").group(0))
    
por 13.06.2018 / 22:55