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

35

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

codiac
fonte
Pode ajudar a mostrar o que a pesquisa que você já fez
de Drew Khoury
@DrewKhoury Eu só tentei com o google encontrar uma resposta para isso, mas nenhum resultado foi encontrado com relação a isso. Ninguém explica como posso ver o protocolo de conexão atual (em uso) (ssh1 ou ssh2).
Codiac #

Respostas:

46

Depois de entrar, você diz:

ssh -v localhost

ele informará a versão exata do servidor.

cstamas
fonte
4
Parece que isso não mostra o tipo de conexão atual.
codiac
18

Sei que essa é uma pergunta antiga, mas desde que me deparei com ela, não pude resistir em postar uma maneira alternativa.

Como o cstamas sugeriu, você pode usar ssh -v localhosto ssh para si mesmo 127.0.0.1 no modo detalhado, que exibirá a mensagem de depuração do progresso. Sim, através desse processo, você pode olhar para o topo da comunicação e obter a versão SSH que está executando no momento.

Mas se você ler a ssh manpágina, encontrará a -Vopção no ssh mais útil. Retirada da página de manual do ssh :

-V Exibe o número da versão e sai.

-v modo detalhado. Faz com que o ssh imprima mensagens de depuração sobre seu progresso. Isso é útil na depuração de problemas de conexão, autenticação e configuração. Várias opções -v aumentam a verbosidade. O máximo é 3.

Então eu acho que seria melhor simplesmente fazer ssh -Ve obter algo parecido com:

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

Espero que isto ajude.

Thanos
fonte
2
Essa é a versão do programa , não o protocolo usado para uma conexão. Como uma resposta de três anos antes explicou corretamente, o mesmo programa pode suportar os protocolos SSH1 e SSH2, ou não, dependendo da configuração.
Dave_thompson_085
11

Massa na sessão, Log, selecione o botão de opção "Pacotes SSH e dados brutos". 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 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, você verá:

Tentando 192.168.144.145 ... Conectado ao test1. O caractere de escape é '^]'. SSH-2.0-OpenSSH_5.3

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

SSH-2.0-OpenSSH_5.3

Se o resultado SSH-2.0for bom, o servidor ssh ao qual você 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

Isso significa que o servidor ainda suporta o protocolo SSL versão 1. Ele tem algo parecido com isto no seu sshd_configarquivo:

Protocol 1,2

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

Então, para esclarecer isso. Se você vir o SSH-2 ao telnetar para a porta 22 do servidor remoto, poderá usar o Protocolo ssh Versão 2 apenas porque o servidor não suporta o Protocolo 1.

Conforme 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.0lá.

davey
fonte
4

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

$ nc [IP_ADDRESS] 22
SSH-2.0-OpenSSH_5.3
Awesominator
fonte
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 através de programação, pois a conexão não é mantida aberta. Para Python, tente:

ssh_protocol = float(re.search(r"SSH-(\d.\d+)").group(1))
Joshua Detwiler
fonte
0

O único método que conheço exige que se tenha privilégios suficientes para exibir as entradas de log do ssh /var/log/auth.log.

$ echo $SSH_CONNECTION 
127.0.0.1 12375 127.0.0.1 22

O primeiro e o segundo campos da SSH_CONNECTIONvariável indicam o IP de origem e a porta de origem da minha conexão. Ao adicionar grepesses valores /var/log/auth.log, posso encontrar a entrada de log de quando minha conexão ssh foi autenticada.

$ 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

Essa entrada de log informa que minha conexão atual está usando o protocolo ssh2. Obviamente, se a sessão ssh estiver aberta por vários dias, a entrada do log poderá estar em /var/log/auth.log.0um auth.logarquivo antigo ou em algum arquivo mais antigo .

Jim L.
fonte