Utiliser la valeur d'une variable comme mot de passe pour scp, ssh, etc. au lieu d'inviter l'utilisateur à entrer à chaque fois

Autant que je sache, les commandes ssh ou scp n'avez pas/prendre un paramètre de mot de passe. Sinon, je pouvais garder le mot de passe dans une variable du shell et probablement se débarrasser de l'entrée de mot de passe. Si j'écris une commande scp dans mon script shell, il invite l'utilisateur à entrer le mot de passe. J'ai plusieurs ssh et scp commandes dans mon script et je ne veux pas l'utilisateur à entrer le mot de passe à chaque fois. Je préfère enregistrer le mot de passe dans une variable du shell dans le début (en demandant le mot de passe une fois), puis de l'utiliser pour toutes ssh ou scp.

J'ai lu sur "identification" dans cette question. Est-ce lié à la solution, je suis à la recherche d'?

Mise à jour
J'ai lu dans Comment utiliser la commande ssh en script shell? pourquoi il est dangereux de le spécifier des mots de passe sur la ligne de commande. N'utilisant expect également stocker le mot de passe et est visible (à l'aide de ps aux)? C'est que le problème de sécurité avec l'aide de expect?

De Plus Amples Explications
Pour de plus amples que ce soit clair, je suis en train d'écrire ce script shell pour automatiser le code et la base de données de sauvegarde, n'code de téléchargement, exécutez nécessaire requêtes de base de données, faire toutes les choses qui sont nécessaires pour une nouvelle version d'une LAMPE projet à partir d'un développeur de système à distance à un serveur live. Mon script shell sera là à l'intérieur de la principale base de code du projet dans chaque développeur instance.

Exigence

  • Je veux que tous les développeurs (tous peuvent travailler à partir de différents systèmes à distance) en sachant que le SSH/FTP mot de passe pour pouvoir utiliser l'invite de commande en entrant le ssh/ftp mot de passe uniquement au moment de l'exécuter une fois. Je préfère le mot de passe pour être le ssh/ftp mot de passe

    Note - je ne veux pas que d'autres développeurs qui ne connaissent pas le mot de passe SSH pour être en mesure de l'utiliser (Donc je suppose que l'authentification par clé publique ne fonctionnera pas car il stocke les mots de passe dans les systèmes).

  • Je ne veux pas de ligne de commande solution qui stocke le mot de passe dans un log dans le système et peut être du monde visible à l'aide de ps aux ou quelque chose.

Ouverture Bounty
À partir de toutes les réponses jusqu'à présent et mon analyse de ces solutions, elle ressemble aux autres que l'authentification par clé publique, tous les autres sont en insécurité. Je ne suis pas encore sûr si vous utilisez expect est précaire. Je pense que c'est sinon la bonne solution pour moi. Dans ce cas, je suis de commande introuvable erreurs en essayant de faire que, comme déjà commenté sur l'une des réponses.

De http://www.debianadmin.com/sshpass-non-interactive-ssh-password-authentication.html -

D'abord et avant tout, les utilisateurs de sshpass
devrait se rendre compte que le ssh de l'insistance
sur seulement obtenir le mot de passe
de manière interactive n'est pas sans raison.
Il est proche d'être impossible
stocker en toute sécurité le mot de passe et les utilisateurs
de sshpass devrait examiner si les
de ssh authentification par clé publique
offre la même expérience de l'utilisateur final,
tout en impliquant moins de tracas et d'être
plus sécurisé.

Donc, il n'est pas possible d'exécuter en toute sécurité plusieurs ssh, scp commandes en entrant le ssh/ftp mot de passe (si une seule fois au moment de l'exécution? Veuillez lire mon Exigence de l'article de nouveau.

Aussi, quelqu'un peut-il expliquer ce -

En particulier, des gens qui écrivent des programmes
qui satisfait sont destinés à
communiquer les points ci-dessus)mot de passe
par programme sont encouragés à utiliser
un canal anonyme et passe le tuyau de
la lecture de la fin de sshpass à l'aide de l'option-d
option.

Est-ce à dire que tout est possible?

source d'informationauteur