Você pode implementar uma chave ssh entre os dois servidores com ssh-keygen
e, em seguida, ssh-copy-id
. Essas configurações permitem que scp
, ssh
possa funcionar sem senha, com criptografia de dados.
Eu quero adicionar um bit a um script de backup que transferirá um arquivo para outro servidor pela Internet.
Meu cron atualmente faz um pg_dump de um banco de dados em um arquivo na máquina local, eu quero então empurrar esse arquivo para local remoto, ele precisa estar seguro (pensando em SSH / SCP / SFTP mas estou aberto a sugestões ).
Eu não quero montar um diretório do servidor remoto como eu estou passando pela internet, e minha percepção é que não é muito seguro.
ambas as máquinas estão executando o Ubuntu, 11.04 em um e 12.04.2 na máquina de origem.
Além disso, eu quero empurrar o arquivo para vários locais de backup, mas estou assumindo que, uma vez que eu tenha a linha de comando, posso apenas enxaguar e repetir o script.
Eu olhei para o scp e o sftp, mas ambos exigem que uma senha seja fornecida de forma interativa, parece.
"Seguro" é relativo ao protocolo que você está usando. Se você montar o diretório via sshfs pela internet, ele ficará bastante seguro por causa da criptografia ssh normal. Ele até o avisará se alguém tiver falsificado o servidor e sua impressão digital tiver mudado, de modo que você não seja enganado para fazer o upload acidental do seu pacote para o servidor de outra pessoa.
Outra coisa que você pode tentar é usar VPN para estabelecer uma conexão segura com a sua rede doméstica a partir do seu servidor ou vice-versa. Então você pode se sentir livre para usar coisas não seguras como o nfs (sem sec=krb5p
) e ter o diretório montado.
Você também pode tentar usar o NFS com o Kerberos 5 por esta resposta e não se preocupar em usar o material da VPN, mas de acordo a essa resposta, expor essas portas publicamente poderia, se um problema surgisse, expor vulnerabilidades.
A opção scp também é boa, mas eu honestamente descobri que ela atrasa as coisas a menos que você tenha uma conexão de internet muito boa, um servidor rápido (em termos de poder de processamento) e chaves ssh configuradas.
Minha própria solução pessoal para isso seria VPN + nfs e usar seu script existente para despejar na pasta nfs-mounted que seria, na realidade, na outra máquina. Você pode até mesmo configurar a pasta para montar automaticamente quando o servidor estiver disponível e usar chaves pré-compartilhadas para fazer autenticação para a VPN, então nenhuma intervenção é necessária.
VPN para o Ubuntu: link
Como o OpenVPN faz uma página no arch linux: link
Mais recursos de VPN