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)?
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).
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
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
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 .
Respostas:
Depois de entrar, você diz:
ele informará a versão exata do servidor.
fonte
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 localhost
o 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 man
página, encontrará a-V
opção no ssh mais útil. Retirada da página de manual do ssh :Então eu acho que seria melhor simplesmente fazer
ssh -V
e obter algo parecido com:Espero que isto ajude.
fonte
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:
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:
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:
Se o resultado
SSH-2.0
for 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_config
arquivo: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:
ou:
Você quer ver
version 2.0
lá.fonte
Você pode obter isso rapidamente usando o netcat na sua máquina local, por exemplo:
fonte
Eu gosto mais disso:
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:
fonte
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
.O primeiro e o segundo campos da
SSH_CONNECTION
variável indicam o IP de origem e a porta de origem da minha conexão. Ao adicionargrep
esses valores/var/log/auth.log
, posso encontrar a entrada de log de quando minha conexão ssh foi autenticada.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.0
umauth.log
arquivo antigo ou em algum arquivo mais antigo .fonte