script Sftp para transferir arquivos no Linux com senha
SFTP permite transferir arquivos com segurança no Linux. Mas às vezes você pode precisar transferir arquivos automaticamente usando SFTP. Nesses casos, o prompt de senha pode representar um obstáculo. Neste artigo, veremos como criar um script SFTP para transferir arquivos no Linux, com senha. Você precisará usar uma biblioteca de terceiros como keychain, sshpass ou esperar que forneça automaticamente sua senha SFTP, para simplificar sua vida. Para o nosso artigo, usaremos o SSHpass. Também veremos como configurar a autenticação de senha sem prompt sem usar o sshpass, usando ssh-copy.
o que é Sshpass
SSHPass é uma ferramenta de linha de comando simples que permite fornecer senhas para prompt de comando e scripts para que você possa automatizar tarefas que exigem autenticação, sem interrupção. Facilita a autenticação de senha não interativa.
Sftp script para transferência de arquivos no Linux com senha
Aqui estão os passos para transferir arquivos no Linux com senha
Definir senha SSH
Abra o terminal e execute o seguinte comando para definir o seu SSH senha. Substitua sua senha-aqui por sua senha SSH.
export SSHPASS=your-password-here
Transferir arquivo no Linux
execute o seguinte comando para transferir arquivos no Linux. Substitua o usuário por seu nome de usuário SFTP, host remoto por seu endereço de host SFTP, /dados com o local da pasta remota e seu arquivo.faça login com o nome do arquivo que deseja transferir.
sshpass -e sftp -oBatchMode=no -b - sftp-user@remote-host << ! cd /data put your-file.log bye!
você pode adicionar os dois comandos acima ao seu arquivo de script shell para fazer com que seu script SFTP transfira arquivos usando senha.
maneira alternativa
você pode usar alternativamente a função ssh-copy para fazer a mesma coisa. Nessa abordagem, você precisará criar uma chave pública para seu cliente e adicionar essa chave pública em seu servidor remoto. Depois de fazer isso, o servidor remoto sempre usará sua chave pública e deixará de solicitar a senha.
abra o terminal e execute o seguinte comando para criar uma chave pública para o seu cliente.
ssh-keygen
você será solicitado 3 perguntas, basta pressionar a tecla enter para cada prompt. Isso gerará sua chave pública.
execute o seguinte comando para copiar sua chave pública para o servidor remove SFTP. Substitua o host remoto pelo endereço IP do host do servidor SFTP.
ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
você será solicitado a acessar / rejeitar a chave do host remoto. Pressione Y yo aceitá-lo. Em seguida, você será solicitado a inserir a senha do seu servidor remoto. Insira-o para adicionar com sucesso sua chave pública à lista de chaves públicas aceitas do servidor remoto. Você será capaz de encontrá-lo em .arquivo ssh / authorized_key.
daqui em diante, você não será solicitado a usar a senha ao usar scp, ssh ou sftp.
neste artigo, analisamos duas maneiras diferentes de transferir arquivos usando SFTP.
Leia também:
Como Inverter a Seqüência de caracteres em Python
Como Conectar ao Banco de dados PostgreSQL usando Python
Como Remover Snap no Ubuntu
Como Selecionar Registros Aleatórios no MySQL
Como Recursivamente Altere o Diretório Proprietário no Linux