SSHPASS Un excellent outil pour la connexion SSH non interactive - Ne jamais utiliser sur le serveur de production

SSHPASS Un excellent outil pour la connexion SSH non interactive - Ne jamais utiliser sur le serveur de production

Dans la plupart des cas, les administrateurs du système Linux se connectent aux serveurs Linux distants à l'aide de SSH, soit en fournissant un mot de passe, soit une connexion SSH sans mot de passe, soit une authentification SSH basée sur des clés.

Et si vous voulez fournir un mot de passe avec nom d'utilisateur à SSH se prolonge? c'est ici que sshpass vient à secourir.

sshpass est un outil de ligne de commande simple et léger qui nous permet de fournir un mot de passe (authentification de mot de passe non interactive) à l'invite de commande elle-même, afin que les scripts de shell automatisés puissent être exécutés pour prendre des sauvegardes via le planificateur CRON.

SSH utilise un accès TTY droit pour s'assurer que le mot de passe est effectivement fourni par un utilisateur de clavier interactif. SSHPASS exécute SSH dans un TTY dévoué, en erreur en croyant qu'il reçoit le mot de passe d'un utilisateur interactif.

Important: En utilisant sshpass considéré comme le moins sécurisé, car il révèle le mot de passe à tous les utilisateurs du système sur la ligne de commande avec simple "PS" commande. Je recommande fortement d'utiliser l'authentification sans mot de passe SSH.

Installez SSHPASS sur les systèmes Linux

Dans Redhat / centos Systèmes basés, vous devez d'abord activer le référentiel EPEL sur votre système pour l'installer à l'aide de la commande yum comme indiqué.

# yum install sshpass # dnf installer sshpass [on Fedora 22+ Versions] 

Sur Debian / Ubuntu et ses dérivés, vous pouvez l'installer en utilisant la commande apt-get comme indiqué.

$ sudo apt-get install sshpass 

Vous pouvez également installer à partir de Source pour avoir la dernière version de sshpass, Téléchargez d'abord le code source, puis extrayez le contenu du fichier TAR et installez-le comme:

$ wget http: // sourceforge.net / projets / sshpass / fichiers / le dernier / téléchargement -o sshpass.le goudron.gz $ tar -xvf sshpass.le goudron.gz $ cd sshpass-1.06 $ ./ Configurer # sudo faire l'installation 

Comment utiliser sshpass dans Linux

sshpass est utilisé avec ssh, vous pouvez afficher tous les sshpass Options d'utilisation avec des descriptions complètes en émettant la commande ci-dessous:

$ sshpass -h 
Aide SSHPASS
Utilisation: SSHPass [-f | -d | -p | -e] [-HV] Paramètres de commande -f Nom de fichier Take le mot de passe à utiliser à partir du numéro de fichier Utilisez le numéro de fichier comme descripteur pour obtenir un mot de passe -p -p mot de passe fournis par mot de passe en tant qu'argument ( Security Unways) -e Le mot de passe est passé sous le nom d'Env-Var "SSHPASS" sans paramètres - le mot de passe sera pris à partir de stdin -h Affichez l'aide (cet écran) -v INTOCHATION DE VERSION IMPRESS ou -e doit être utilisé 

Comme je l'ai mentionné auparavant, sshpass est plus fiable et utile à des fins de script, considérez l'exemple de commandes ci-dessous.

Connectez-vous au serveur Linux SSH distant (10.42.0.1) avec le nom d'utilisateur et le mot de passe et vérifiez l'utilisation du disque du système de fichier du système distant comme indiqué.

$ sshpass -p 'my_pass_here' ssh [e-mail protégé] 'df -h' 

Important: Ici, le mot de passe est fourni sur la ligne de commande qui n'est pratiquement pas sûre et l'utilisation de cette option n'est pas recommandée.

SSHPASS - Connexion à distance Linux via SSH

Cependant, pour éviter d'afficher le mot de passe à l'écran, vous pouvez utiliser le -e signalez et entrez le mot de passe en tant que valeur du Sshpass Variable d'environnement comme ci-dessous:

$ export sshpass ='my_pass_here' $ echo $ sshpass $ sshpass -e ssh [e-mail protégé] 'df -h' 
sshpass - Masquer le mot de passe dans l'invite

Note: Dans l'exemple ci-dessus, Sshpass La variable d'environnement est à des fins temporaires uniquement et sera supprimée lors du redémarrage.

Pour définir en permanence le Sshpass variable d'environnement, ouvrez le / etc / profil fichier et tapez l'instruction d'exportation au début du fichier:

exportation sshpass ='my_pass_here' 

Enregistrez le fichier et sortez, puis exécutez la commande ci-dessous pour effectuer les modifications:

$ source / etc / profil 

D'un autre côté, vous pouvez également utiliser le -F Incliquez et mettez le mot de passe dans un fichier. De cette façon, vous pouvez lire le mot de passe à partir du fichier comme suit:

$ sshpass -f Password_filename ssh [e-mail protégé] 'df -h' 
SSHPASS - Fix de mot de passe pour vous connecter

Vous pouvez également utiliser SSHPASS pour transférer des fichiers à l'aide de fichiers SCP ou Backup / Sync via RSYNC à l'aide de SSH comme indiqué:

------- Transférer des fichiers à l'aide de SCP ------- $ scp -r / var / www / html / exemple.com --rsh = "sshpass -p 'my_pass_here' ssh -l aaronkilik "10.42.0.1: / var / www / html ------- Fichiers de sauvegarde ou de synchronisation à l'aide de RSYNC ------- $ RSync --rsh = "sshpass -p 'my_pass_here' ssh -l aaronkilik "10.42.0.1: / data / backup / / backup / 

Pour plus d'utilisation, je vous suggère de lire le sshpass Page man, Type:

$ man sshpass 

Dans cet article, nous avons expliqué sshpass Un outil simple qui permet une authentification de mot de passe non interactive. Bien que ces outils puissent être utiles, il est fortement recommandé d'utiliser le mécanisme d'authentification des clés publics plus sécurisé de SSH.

Veuillez laisser une question ou un commentaire via la section de commentaires ci-dessous pour toute autre discussion.