Pode lftp ler netrc para conexões sftp

2

Estou tentando criar um script para fazer upload de alguns arquivos para um servidor via SFTP. Eu posso fazer isso manualmente abrindo uma sessão lftp interativa e fornecendo nome de usuário e senha lá. Para o script, gostaria de

  • não codificar credenciais no script (por razões óbvias)
  • não mencioná-los na linha de comando (quero o comando na minha .bash_history, mas claro que não as credenciais)
  • faça o lftp ler as credenciais do .netrc ou algo similar

Eu não consigo fazer isso funcionar. Minha solução atual é um script wrapper que analisa o .netrc para as credenciais e as adiciona a um script lftp que eu apago depois. Isso simula as etapas que executo manualmente, mas parece reimplementar mal a funcionalidade existente. Enquanto isso funciona, a questão permanece:

Can lftp read .netrc for SFTP-connections?

Em caso afirmativo, existem requisitos especiais de sintaxe se as portas alfandegárias fizerem parte da configuração? Eu preciso me conectar a sftp://username:[email protected]:12322 .

    
por kronn 30.04.2016 / 17:42

2 respostas

2

A melhor aposta seria usar o par de chaves para acessar o servidor como você faz para ssh . Três etapas:

  1. Crie um par de chaves (se você ainda não tiver):

    ssh-keygen -t rsa -C "" -f ~/.ssh/id_rsa
    
  2. Copiar chave pública para o servidor:

    ssh-copy-id [email protected] -p 12322
    
  3. Conecte-se ao servidor:

    lftp sftp://[email protected]:12322
    

Se você usar algum caminho não padrão para a chave, observe que você deve adicionar a chave a ssh-agent ou ao seu .ssh/config antes!

    
por 30.04.2016 / 18:43
0

De acordo com a página lftp man , o ~/.netrc é suportado / usado por lftp :

~/.netrc

The file is consulted to get default login and password to FTP server. Passwords are also searched here if an URL with user name but with no password is used.

Com base nessa leitura, suspeito que sua URL, usando portas personalizadas, esteja bem.

Espero que isso ajude!

    
por 30.04.2016 / 18:08