Preciso me conectar ao servidor EDI e coletar os dados via sftp. Este é um servidor FTP incomum. Este é um servidor especial que apaga arquivos após a leitura. Descartamos a ideia inicial de montar a pasta sftp no sistema de arquivos Linux, pois o comando mv não teve tempo de copiar os arquivos. Não quero usar nome de usuário e senha para autenticação, mas quero usar uma chave ssh. Eu o gerei e enviei para meus colegas. Em seguida, executo este script no nível do sistema operacional:
#!/bin/bash
HOST=x.x.x.x
PORT=2022
USER=TEST_USER_NAME
KEYFILE=/home/srvadm/.ssh/id_rsa
REMOTE_DIR=From FM
LOCAL_DIR=/output/dev/
eval $(ssh-agent -s)
ssh-add $KEYFILE
lftp -u $USER sftp://$HOST:$Port "set sftp:connect-program 'sh -a -x'"<<EOF
cd $REMOTE_DIR
lcd $LOCAL_DIRECTORY
mget *.csv
bye
EOF
E recebi o erro:
Agent pid 18964
Identity added: /home/srvadm/.ssh/id_rsa (srvadm@myserver-2024-02-08)
open: GetPass() failed -- assume anonymous login
cd: Login failed: Password required
ls: ls -l: Login failed: Password required
mget: *.csv: Login failed: Password required
ls: ls -l: Login failed: Password required
External program terminated with exit code 1
Por que o servidor remoto está solicitando uma senha? Como evitar isso?
versões: LFTP | Versão 4.9.2 Linux versão 5.14.21-150400.24.33-default (geeko@buildhost) (gcc (SUSE Linux) 7.5.0, GNU ld (GNU Binutils; SUSE Linux Enterpris
Eu tentei o
lftp -u $USER:bla-bla-bla-password
comando, funciona, mas bloqueia o usuário no lado do servidor, embora a autenticação da chave esteja nas configurações do usuário.