-o password_stdin
parece não estar funcionando em todos os sistemas, por exemplo o freeBSD. etc
Você também pode usar expect
Interpreter, deve funcionar com sshfs
e deve fazer o truque.
Outra solução seria sshpass
, por exemplo, digamos que você esteja fazendo o backup do diretório / var / www
Backup:
name=$(date '+%y-%m-%d')
mkdir /backup/$name && tar -czvf /backup/$name/"$name.tar.gz" /var/www
fazendo upload do arquivo de backup para o servidor de backup
sshpass -p "your_password" scp -r backup_user@target_ip:/home/ /backup/$name
Por isso, fará o upload do diretório com o backup de hoje
Mas ainda, como foi dito acima, a melhor maneira (segura e simples) seria usar o par de chaves ssh |
O único inconveniente é que você terá que passar pelo processo de geração de chaves uma vez em cada servidor que precisar emparelhar, mas é melhor do que manter uma senha em formato de texto simples em todos os servidores que você deseja fazer backup :),
Gerando uma chave Pareia o caminho correto
-
No servidor local
ssh-keygen -t rsa
-
No servidor remoto
ssh root@remote_servers_ip "mkdir -p .ssh"
-
Fazendo upload de chaves públicas geradas para o servidor remoto
cat ~/.ssh/id_rsa.pub | ssh root@remote_servers_ip "cat >> ~/.ssh/authorized_keys"
-
Definir permissões no servidor remoto
ssh root@remote_servers_ip "chmod 700 ~/.ssh; chmod 640 ~/.ssh/authorized_keys"
-
Login
ssh root@remote_servers_ip
-
Ativando o protocolo SSH v2
uncomment "Protocol 2" in /etc/ssh/sshd_config
-
habilitando a autorização de chave pública no sshd
uncomment "PubkeyAuthentication yes" in /etc/ssh/sshd_config
-
Se o StrictModes estiver definido como sim em / etc / ssh / sshd_config, então
restorecon -Rv ~/.ssh