Propojení 'sshfs password'
s <<<
do -o password_stdin
funguje na bash:
sshfs -o password_stdin [email protected]_ip:/home /mnt/backup <<< 'sshfs password'
Podle manuálu je zde možnost -o password_stdin
což by mohlo umožnit číst heslo ze standardního vstupu, což může být pravděpodobně přesměrování. Nikdy jsem to nepoužil, takže spekuluji.
To znamená, že důrazně nedoporučuji takové řešení, které je ze své podstaty nejisté.
ssh
velmi dobře funguje se systémem soukromých/veřejných klíčů. Je to jednoduché a bezpečné. Není třeba zadávat heslo nebo je psát srozumitelně ve skriptu shellu. Stačí stisknout svůj veřejný klíč na serveru a můžete se okamžitě připojit.
-o password_stdin
Zdá se, že nefungují na všech systémech, například freeBSD. atd.
Můžete také použít expect
Interprete, mělo by to fungovat se sshfsand by měl stačit.
Dalším řešením by bylo sshpass
řekněme například, že zálohujete adresář /var/www
Zálohování:
name=$(date '+%y-%m-%d')
mkdir /backup/$name && tar -czvf /backup/$name/"$name.tar.gz" /var/www
nahrání záložního souboru na záložní server
sshpass -p "your_password" scp -r [email protected]_ip:/home/ /backup/$name
Nahraje tedy adresář s dnešní zálohou
Ale přesto, jak bylo řečeno výše, nejlepším (bezpečným a jednoduchým) způsobem by bylo použít pár klíčů ssh
Jedinou nepříjemností by bylo, že musíte projít procesem generování klíčů jednou na každém serveru, který potřebujete spárovat, ale je to lepší než udržovat heslo ve formátu prostého textu na všech serverech, které chcete zálohovat :),
Vygenerování páru klíčů správným způsobem
-
Na místním serveru
ssh-keygen -t rsa
-
Na vzdáleném serveru
ssh [email protected]_servers_ip "mkdir -p .ssh"
-
Nahrání vygenerovaných veřejných klíčů na vzdálený server
cat ~/.ssh/id_rsa.pub | ssh [email protected]_servers_ip "cat >> ~/.ssh/authorized_keys"
-
Nastavte oprávnění na vzdáleném serveru
ssh [email protected]_servers_ip "chmod 700 ~/.ssh; chmod 640 ~/.ssh/authorized_keys"
-
Přihlášení
ssh [email protected]_servers_ip
-
Povolení protokolu SSH v2
odkomentujte "Protocol 2" v /etc/ssh/sshd_config
-
povolení autorizace veřejného klíče v sshd
odkomentujte "PubkeyAuthentication yes" v /etc/ssh/sshd_config
-
Pokud je StrictModes nastaveno na yes v /etc/ssh/sshd_config, pak
restorecon -Rv ~/.ssh