Como obter a versão sftp do servidor remoto?
como parte da tentativa de depurar um problema, gostaria de saber qual a versão do sftp está instalada no servidor remoto onde estou a tentar enviar ficheiros.
disseram-me para usar {[[0]} na linha de comando, mas não consigo qualquer documentação sobre isso. Há outra opção? O meu servidor é baseado em Linux.
a minha outra pergunta é: digamos que dois servidores não instalaram a mesma versão do SFTP, existe uma espécie de negociação de versões de Protocolo para garantir que eles 'falam a mesma língua'?
1 answers
Para obter a versão remota do SSH, pode enviar o telnet para a porta do ssh. O servidor SSH remoto irá enviar o seu texto de versão de software:
$ telnet localhost 22
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.9
Na saída de depuração do ssh, você iria procurar por estas linhas:
debug1: Local version string SSH-2.0-OpenSSH_6.9
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.9
A primeira linha é a versão do seu cliente local. A segunda linha é o protocolo SSH e a versão de software do servidor remoto.
O que procura aqui é a parte "OpenSSH_6.9". Isso diz - lhe que o servidor remoto é o OpenSSH. O servidor SFTP actual irá quase certamente seja o sftp-server
programa que vem com essa versão do OpenSSH.
Se quiser Especificamente a versão do protocolo SFTP , O utilitário de linha de comandos sftp tem um comando de "versão" que imprime a versão negociada do protocolo:
sftp> version
SFTP protocol version 3
Você também pode obtê-lo executando "sftp-vv" e procurando por esta linha de saída de depuração:
debug2: Remote version: 3
Note que o OpenSSH é de longe o servidor SSH mais utilizado, e implementa uniformemente a versão 3 do SFTP.
Vou acrescentar que não existe documentação real para o resultado de depuração do OpenSSH. A maneira de entender isso é para baixar uma cópia da fonte e descobrir quais mensagens de depuração têm a informação que você deseja.