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)?
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)?
Respostas:
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 :
-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 -V
e obter algo parecido com:
> ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
Espero que isto ajude.
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.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:
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.0
lá.
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
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))
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_CONNECTION
variável indicam o IP de origem e a porta de origem da minha conexão. Ao adicionar grep
esses 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.0
um auth.log
arquivo antigo ou em algum arquivo mais antigo .