Script para baixar arquivos do Servidor SSH


0

É possível criar um script que siga os mesmos comandos que o FileZilla executa ao se conectar 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 clique em OK e não adicionar chave para cache ...

Quando eu 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 "user@my.secure.site.com" 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.



eu tenho que explicar uma chave no meu script?
jes516

Respostas:


1

Ao conectar-se a um servidor SSH, você precisa verifique se você confia na chave do host do servidor . Isto é para evitar ataque man-in-the-middle .

Em Scripts WinSCP , você verifica a chave do host usando o -hostkey interruptor do open comando.

open sftp://user:password@my.secure.site.com/ -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 sobre como converter script FTP do Windows para script SFTP WinSCP .


Nota sobre os comandos no log FileZilla: Esses comandos são proprietários de comandos do 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, pwdetc.)


é o -hostkey="" toda a informação "impressão digital" que é exibida no prompt filezilla? Além disso, você sabe se eu posso testar "conexões ssh", usando openssh, gerando uma chave no Linux e, em seguida, usando o script WinSCP + no Windows? Eu uso o Linux no VirtualBox para Python scripting tão im familiarizado com linux / ftp, mas eu gostaria de fazer o auto-teste antes de começar a tentar acertar o servidor de produção real (não o meu servidor).
jes516

Sim, é a string inteira. Vejo [ winscp.net/eng/docs/faq_script_hostkey](Where recebo impressão digital da chave de host SSH para uso com scripts?). Eu assumo isso "gerando uma chave" Você quer dizer "obtendo a impressão digital da chave hospedeira" (no formato necessário para WinSCP).
Martin Prikryl

desculpe sim, gerar uma chave no openssh para eu obter em um ambiente windows usando o winscp. esta ideia teria o mesmo efeito que a conexão no meu post original? .. eu posso fazer o meu teste sem gerar tráfego para o servidor de produção ..
jes516

O OpenSSH exibe a chave do host em formato semelhante ao FileZilla / WinSCP, exceto que não usa ssh-dss/ssh-rsa key_size prefixo.
Martin Prikryl
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.