GNU/Linux >> Tutoriels Linux >  >> Linux

Nom d'utilisateur et mot de passe en ligne de commande avec sshfs

Tuyauterie du 'sshfs password' avec <<< à -o password_stdin fonctionne sur bash :

sshfs -o password_stdin [email protected]_ip:/home /mnt/backup <<< 'sshfs password'

Selon le manuel, il y a une option -o password_stdin qui pourrait permettre de lire le mot de passe à partir de l'entrée standard, qui peut probablement être une redirection. Je ne l'ai jamais utilisé, donc je spécule.

Cela dit, je déconseille fortement une telle solution qui est par nature peu sûre.

ssh fonctionne très bien avec un système de clés privées/publiques. C'est simple et sécurisé. Inutile de saisir un mot de passe ou de l'écrire en clair dans un script shell. Poussez simplement votre clé publique sur le serveur et vous pourrez vous connecter immédiatement.


-o password_stdin ne semblent pas fonctionner sur tous les systèmes, par exemple freeBSD. etc.

Vous pouvez également utiliser expect Interprète, cela devrait fonctionner avec sshfsand devrait faire l'affaire.

Une autre solution serait sshpass , par exemple, disons que vous sauvegardez le répertoire /var/www

Sauvegarde :

name=$(date '+%y-%m-%d')
mkdir /backup/$name && tar -czvf /backup/$name/"$name.tar.gz" /var/www

téléchargement du fichier de sauvegarde sur le serveur de sauvegarde

sshpass -p "your_password" scp -r [email protected]_ip:/home/ /backup/$name

Il téléchargera donc le répertoire avec la sauvegarde d'aujourd'hui

Mais encore, comme il a été dit plus haut, le meilleur moyen (sûr et simple) serait d'utiliser la paire de clés ssh
Le seul inconvénient serait que vous deviez passer par le processus de génération de clé une fois sur chaque serveur que vous devez coupler, mais c'est mieux que de conserver un mot de passe au format texte brut sur tous les serveurs que vous souhaitez sauvegarder :),

Générer une paire de clés de la bonne manière

  • Sur le serveur local

    ssh-keygen -t rsa
    
  • Sur serveur distant

    ssh [email protected]_servers_ip "mkdir -p .ssh"
    
  • Téléchargement des clés publiques générées sur le serveur distant

    cat ~/.ssh/id_rsa.pub | ssh [email protected]_servers_ip "cat >> ~/.ssh/authorized_keys"
    
  • Définir les autorisations sur le serveur distant

    ssh [email protected]_servers_ip "chmod 700 ~/.ssh; chmod 640 ~/.ssh/authorized_keys"
    
  • Connexion

    ssh [email protected]_servers_ip
    
  • Activation du protocole SSH v2

    décommentez "Protocol 2" dans /etc/ssh/sshd_config

  • activation de l'autorisation de clé publique dans sshd

    Décommentez "PubkeyAuthentication yes" dans /etc/ssh/sshd_config

  • Si StrictModes est défini sur oui dans /etc/ssh/sshd_config alors

    restorecon -Rv ~/.ssh
    

Linux
  1. Automatisation du mot de passe SSH sous Linux avec sshpass

  2. Comment se connecter au serveur ssh avec plink et cmd et clé publique

  3. Oring avec True dans une commande sur Ssh ?

  4. Comment désactiver la connexion SSH avec un mot de passe

  5. Envoyer du courrier à partir de la ligne de commande avec un serveur smtp externe sous Linux

Gérer les comptes locaux avec Useradd et Usermod Command

Qu'est-ce que la commande SSH et comment utiliser SSH pour se connecter à un serveur distant

Comment transmettre un mot de passe à la commande SSH sous Linux

Tunnellisation et proxy SSH

Comment surveiller la santé du serveur Linux avec des outils de ligne de commande

Principes de base de la ligne de commande Linux - Travailler avec des fichiers et des répertoires