Script para baixar arquivos do servidor SSH

0

É possível criar um script que siga os mesmos comandos que o FileZilla executa ao conectar-se a um servidor ssh?

Quando eu faço login manualmente usando o FileZilla, recebo a seguinte mensagem para os seguintes tipos de conexão:

The server's host key is unknown. You have no guarantee that the server is the
computer you think it is.


    Host:  securedomain_1.com:22
    Fingerprint: ssh-dss 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

    Host:  securedomain_2.com:22
    Fingerprint: ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

    Host:  securedomain_3.com:22
    Fingerprint: ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx


Trust this host and carry on connecting?
[ ] Always trust this host, add this key to the cache.
[OK] [CANCEL]

Eu clico em OK e NÃO adiciono a chave ao cache ...

Quando faço login manualmente, esses são os comandos que o FileZilla executa:

Status: Connecting to my.secure.site.com...
Response:   fzSftp started
Command:    open "[email protected]" 22
    [asks for key...]
    [I manually click OK]
Command:    Trust new Hostkey: Once
Command:    Pass: ********
Status: Connected to my.secure.site.com
Status: Retrieving directory listing...
Command:    cd "/SFTP/DIR"
Response:   New directory is: "/SFTP/DIR"
Command:    ls
Status: Listing directory /SFTP/DIR
Status: Calculating timezone offset of server...
Command:    mtime "IN"
Response:   1412312345
Status: Timezone offsets: Server: -18000 seconds. Local: -18000 seconds. Difference: 0 seconds.
Status: Directory listing successful

O que exatamente está acontecendo quando clico em OK para "Confiar neste host e continuar conectando"?

Estou aceitando uma chave do servidor SSH?

Isso seria para uma máquina Windows. Eu estava pensando em usar o WinSCP, mas gostaria de entender o que está acontecendo quando me conecto a esses servidores. Eu tenho alguns scripts que são destinados para FTPS que não funcionam quando para esses servidores.

    
por jes516 07.11.2014 / 21:02

1 resposta

1

Ao se conectar a um servidor SSH, você precisa verificar se confia na chave do host do servidor . Isso evita um ataque man-in-the-middle .

Em script WinSCP , você verifica a chave do host usando a opção -hostkey do open comando.

open sftp://user:[email protected]/ -hostkey="ssh-dss 2048 xx..."

Referências: Onde obtenho a impressão digital da chave de host SSH para autorizar o servidor?

Há um guia de como converter o script FTP do Windows para o script WinTP do SFTP .

Nota sobre os comandos no log do FileZilla: Esses comandos são proprietários de psftp (o que o FileZilla usa internamente para implementar o protocolo SFTP). Eles não têm nada a ver com os protocolos SFTP ou SSH como tal. Obviamente, todos eles mapeiam internamente para algumas solicitações de SFTP e você pode emulá-los usando o script WinSCP. Mas os comandos do WinSCP seriam diferentes. Observe também que o SFTP, ao contrário do FTP, é um protocolo binário, portanto não há comandos de texto como no FTP ( cd , pwd , etc.)

    
por 07.11.2014 / 21:36