Login com nome de utilizador e palavra-passe FTP Linux
Qual é o comando para iniciar sessão com FTP tudo com uma linha?
ftp username:password@my.domain.com
diz:
Palavra-passe necessária para username:password
Qual é o comando para iniciar sessão com FTP tudo com uma linha?
ftp username:password@my.domain.com
diz:
Palavra-passe necessária para username:password
ftp -nv yourftpserver.com
depois user your_username
ou user anonymous
Eu afixei esta resposta uma vez que ftp ftp://username:password@my.domain.com
não funcionou para mim.
Usage: { ftp | pftp } [-46pinegvtd] [hostname]
-4: use IPv4 addresses only
-6: use IPv6, nothing else
-p: enable passive mode (default for pftp)
-i: turn off prompting during mget
-n: inhibit auto-login
-e: disable readline support, if present
-g: disable filename globbing
-v: verbose mode
-t: enable packet tracing [nonfunctional]
-d: enable debugging
A melhor opção é utilizar um .netrc juntamente com algo como gpg para fins de segurança.
Escrevi um guião de propósito geral para isto, que posso carregar mais tarde, mas resume-se a:
gpg -c .netrc
ou opcionalmente com uma frase-chave na linha de comando e um destino de saída:
gpg --passphrase <secretphrase> -o .netrc.gpg -c .netrc
Não mostrado aqui, mas poderia adicionalmente utilizar chaves assimétricas (se as tiver configuradas) com gpg para tornar isto ainda mais seguro.
Então, quando estiver pronto para iniciar sessão
gpg .netrc.gpg
# or
gpg --passphrase <secretphrase> -o .netrc .netrc.gpg
ftp yourservername
rm .netrc
Um exemplo .netrc:
machine google.com
login <username>
password <secretpassword>
Na verdade, mantenho um hash local e a cópia original destes ficheiros num computador diferente daquele em que utilizo os ficheiros .netrc, e verifico o hash do .netrc e o script que corro, mas isso está acima e além da questão original do OP.
Pode tentar
my_ftp() {
ftp -i -n <<EOF
open $HOST
user "$USER" "$PASS"
$@
EOF
}
que depois pode chamar com my_ftp $'ls subfolder\nanothercommand'
Esta solução não é interactiva mas o melhor que consegui descobrir
editar: Provavelmente o melhor é usar apenas o encaracolado.