Quando estiver em você, diga:
ssh -v localhost
ele informará a versão exata do servidor.
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)?
Quando estiver em você, diga:
ssh -v localhost
ele informará a versão exata do servidor.
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á.
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.
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
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))