Como podemos nos conectar a um servidor SFTP de uma máquina Windows a um servidor SFTP do Linux usando uma chave DSA?

0

Como usuário do Windows, gerei um par de chaves DSA do CoreFTP Lite e enviei-o para um terceiro que executa um servidor SFTP.

Eles me disseram que uma chave DSA válida precisa ter ssh-dsa no início e o nome de usuário @ systemname no final.

O CoreFTP não gerou nem o cabeçalho ssh-dsa nem o rodapé username @ systemname. Eu tentei com o WinSCP e ele também não os gerou.

Existe uma diferença entre como o SFTP funciona entre o Windows e o Linux?

Se eu colocar um useraccount @ systemname no final do texto, ele funcionará? Como o sistema Linux validaria que meu sistema é chamado "systemname"? Se não puder validar, qual é o propósito de adicioná-lo?

    
por Zesty 24.07.2011 / 15:05

2 respostas

3

Is there a difference between how SFTP works between Windows and Linux?

Não. A única diferença é formatos de armazenamento de chaves usados por vários programas. A maioria dos sistemas Linux executa o OpenSSH como o servidor SSH / SFTP, e o seu terceiro está solicitando uma chave pública compatível com OpenSSH.

  • CoreFTP armazena chaves privadas no formato OpenSSH e chaves públicas de forma semelhante ao OpenSSH.

    Você pode usar PuTTYgen ou ssh-keygen -yf para extrair a chave pública, pois o arquivo "privado" sempre contém o par de chaves inteiro.

    Ou você pode simplesmente adicionar " ssh-dss " antes dos dados de chave pública CoreFTP para torná-lo compatível com OpenSSH. Exemplo:

    ssh-dss AAAAB3NzaC1kc3M...
    

    (Por que o CoreFTP esquece o cabeçalho? Pode ser que os desenvolvedores tenham considerado desnecessário, já que os dados codificados em Base64 já têm ssh-dss no começo. E, além disso, quem jamais precisa compatibilidade com o software SFTP mais popular?)

  • O

    PuTTY usa seu próprio formato de chave "PPK".

    Quando você abre a chave no PuTTYgen (ou gera uma nova), a chave OpenSSH pública é exibida na caixa grande na parte superior.

    A chave privada pode ser exportada para o formato OpenSSH através dos menus.

  • O WinSCP não possui um programa de geração de chaves. Agrupa o PuTTYgen do PuTTY.

Para completar:

  • O OpenSSH ( ssh , ssh-keygen ) armazena chaves privadas no formato "PEM" usado pelo OpenSSL e chaves públicas em seu próprio formato de linha única. (Como mencionado acima, o arquivo-chave "privado" contém chaves privadas e públicas).

They told me that a valid DSA key needs to have [...] the username@systemname at the end.

[...] If I put a useraccount@systemname at the end of the text will it work? How would the Linux system validate that my system is called "systemname"? If it can't validate, what is the purpose of adding it?

A parte username@systemname é um comentário usado para identificação de chaves (por exemplo, quando você tem 10 chaves em authorized_keys ), mas é totalmente ignorado por software.

As chaves públicas do OpenSSH sem um comentário são perfeitamente válidas.

    
por 24.07.2011 / 15:32
3

Você precisa fornecer a parte pública do seu par de chaves em um formato que o servidor SFTP de terceiros possa reconhecer - e, nesse caso, parece que eles querem o formato openssh.

Eu não sou especialista no formato das chaves dsa CoreFTP Lite, mas de alguns hits aleatórios do google, parece que você pode usar PuttyGen para abrir a chave gerada pelo CoreFTP, depois exportá-la como uma chave pública do OpenSSH.

    
por 24.07.2011 / 15:18