Como transferir um servidor para outro servidor protegido por senha sem interatividade?

1

Eu quero sftp arquivos de um servidor para outro servidor e essa coisa eu quero incluir em um script. Mas o problema é que o servidor de destino é um servidor protegido por senha. Então, a senha precisa ser digitada quando o prompt de senha chegar.

Se eu incluir isso em um script, não quero interação do usuário. Deve levar a senha por conta própria. (Eu sei a senha, como posso incluir no script para que ela seja automaticamente )

Alguém pode ajudar? Pesquisou muito no Google, mas não encontrou uma resposta adequada. Eu não posso fazer a senha de conexão menos, porque eu estou trabalhando em um servidor de produção. então não posso modificar nada para o servidor. Mas eu quero que o meu script funcione sozinho. Por favor ajude.

    
por PriB 18.01.2015 / 17:25

1 resposta

2

O que você quer parece muito com ssh-keys. Isso permite que você crie redes 'confiáveis' que não exigem senhas para serem inseridas. Isso também lhe dá segurança adicional para que você não tenha uma senha em texto simples em seu script.

Na máquina de origem:

ssh-keygen -t rsa -b 2048
Enter file in which to save the key (/root/.ssh/id_rsa): [Hit Enter]
Enter passphrase (empty for no passphrase): [Hit Enter]
Enter same passphrase again: [Hit Enter]
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

Copie agora a chave pública para o servidor de destino:

ssh-copy-id [email protected]
[OR]
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

Agora no seu script:

sftp -o "IdentityFile=/root/.ssh/id_rsa" [email protected]

Alternativamente, você poderia fazer:

read -s -p "Enter Password: " password
sshpass -p $password sftp [email protected]

Onde:

  • -s: não exibe senha na tela
  • -p: "Senha:": Exibir mensagem de texto
  • senha: variável de bash na qual sua senha foi armazenada
por 18.01.2015 / 17:37

Tags