Como faço para baixar arquivos com segurança em shell script?

2

Estou escrevendo alguns scripts de shell para baixar automaticamente os pacotes de software do meu servidor e configurá-los nos servidores do cliente. Em algum ponto do script, o comando de download está com o link - prefiro não ter esse arquivo confidencial disponível um servidor público, já que qualquer um pode escanear e baixar os arquivos também. No entanto, posso exigir autenticação nesses diretórios, mas como passar as credenciais de acesso junto com o comando wget? Ou existe uma maneira melhor de realizar?

    
por Ralph 29.01.2015 / 01:54

1 resposta

1

De wget manual :

‘--user=user’

‘--password=password’

Specify the username user and password password for both FTP and HTTP file retrieval. These parameters can be overridden using the ‘--ftp-user’ and ‘--ftp-password’ options for FTP connections and the ‘--http-user’ and ‘--http-password’ options for HTTP connections.

Então, o que você está procurando é:

$ wget --user=n3rve --password='mylittlepony' http://example.com/file/secure_download.tar.gz

Se possível, eu sugeriria configurar um servidor SFTP onde, em vez disso, você pode criar e compartilhar chaves SSH entre você e seus servidores de clientes e eles se conectam ao seu servidor SFTP e puxam os arquivos necessários.

Este é um método muito mais seguro do que usar wget em um servidor da web. Toda a configuração exigiria que você solicitasse que seus clientes fornecessem a chave pública deles, adicionando o id_rsa.pub ao arquivo .ssh/authorized_keys e eles se conectariam por:

$ sftp [email protected] 
[OR]
$ sftp [email protected]

*note, no password is required because you created a trusted network with your ssh-key pair.

    
por 29.01.2015 / 02:13