Lorsque la connexion sans mot de passe est activée, vous pouvez soit utiliser SSH pour exécuter une commande en mode batch sur une machine distante, soit utiliser SCP pour copier des fichiers depuis/vers la machine distante.
S'il y a des problèmes avec la connexion sans mot de passe, votre programme de traitement par lots peut se retrouver dans une boucle ou un délai d'attente.
Dans cet article, voyons comment demander à ssh/scp d'effectuer l'opération uniquement si vous pouvez le faire sans attendre le mot de passe.
Avant d'essayer ceci, assurez-vous que la connexion sans mot de passe est configurée entre votre local hôte et hôte distant.
1. ssh -o "BatchMode oui" Exemple d'utilisation
Si vous avez activé la connexion sans mot de passe, l'exemple suivant se connectera à l'hôte distant et exécutera la commande who sans demander le mot de passe.
local-host# ssh ramesh@remote-host who
Si la connexion sans mot de passe n'est pas activée, il demandera le mot de passe sur l'hôte distant comme indiqué ci-dessous.
local-host# ssh ramesh@remote-host who ramesh@remote-host's password:
Si vous utilisez ssh -o "BatchMode yes", alors il ne fera ssh que si la connexion sans mot de passe est activée, sinon il renverra une erreur et continuera.
local-host# ssh -o "BatchMode yes" ramesh@remote-host Command
Exécution de la commande en mode batch à l'aide de SSH - cas de réussite
local-host# ssh -o "BatchMode yes" ramesh@remote-host who .. [Note: This will display the output of remote-host's who command]
Exécution de la commande en mode batch à l'aide de SSH — Cas d'échec
local-host# ssh -o "BatchMode yes" ramesh@remote-host who Permission denied (publickey,password).
Remarque : Si vous n'avez pas utilisé -o "BatchMode yes", la commande ci-dessus aurait demandé le mot de passe de mon compte sur l'hôte distant. C'est la principale différence dans l'utilisation de l'option BatchMode yes.
2. scp -B option Exemple d'utilisation
Si vous utilisez l'option scp -B, il n'exécutera scp que si la connexion sans mot de passe est activée, sinon il se fermera immédiatement sans attendre le mot de passe.
$ scp -B file root@IP:PATH
SCP en mode batch – Cas réussi
local-host# scp -B /etc/yp.conf ramesh@remote-host:/tmp yp.conf 100% 84 0.1KB/s 00:00
SCP en mode batch – Cas d'échec
Dans cet exemple, si scp est possible sans authentification, la commande s'exécutera sinon elle se terminera comme indiqué ci-dessous.
local-host# scp -B /etc/yp.conf ramesh@remote-host:/tmp Permission denied (publickey,password). lost connection