Stockage du mot de passe dans un fichier d'options protégé
Si vous pouvez faire confiance [*] la sécurité de l'ordinateur distant, vous pouvez stocker le mot de passe dans un fichier d'options correctement protégé, comme suggéré dans la section Lignes directrices pour la sécurité des mots de passe à l'intention des utilisateurs finaux chapitre du manuel, sans qu'il soit nécessaire de communiquer par l'intermédiaire de ssh
ou de taper à chaque fois.
Plus précisément, vous pouvez ajouter une ligne dans la section [client] du fichier .my.cnf
dans votre répertoire personnel :
[client]
password=your_pass
Bien entendu, vous devez faire en sorte que ce fichier ne soit accessible à personne d'autre que vous, en définissant le mode d'accès au fichier sur 400 ou 600 avec, par exemple, la commande suivante
chmod 600 ~/.my.cnf
Vous pouvez alors utiliser quelque chose comme
ssh user@server 'mysql -u user110971 --defaults-file=/home/user110971/mysql-opts'
donde user110971
est le nom d'utilisateur de votre compte.
Forcer ssh à allouer un pseudo tty ( ssh -t
)
Ce problème se produit chaque fois que vous envoyez une commande par l'intermédiaire de ssh
et vous devez insérer l'entrée parce que, par défaut, ssh
n'allouera pas de pseudo-tty.
Vous pouvez forcer l'allocation du tty avec l'option -t
(voire plusieurs si nécessaire) :
-t
Forcer l'allocation de pseudo-tty. Cette fonction peut être utilisée pour exécuter des programmes arbitraires à l'écran sur une machine distante, ce qui peut s'avérer très utile, par exemple pour mettre en œuvre des services de menu. Multiple -t
forcent l'allocation de tty, même si ssh n'a pas de tty local.
Comme vous pouvez le lire dans ce message de Debian (Jul_11_2008) à propos de sudo
Il s'agit d'une vieille question qui revient souvent :
ssh user@server "sudo ls"
password: password
Et le mot de passe vous est indiqué
La solution est de forcer ssh à allouer un pseudo-tty, avec l'option -t :
ssh -t user@server sudo ls
Remarque :
[*] Si vous pouvez compter sur le fait de laisser le mot de passe dans un fichier accessible uniquement par vous et par root sur le serveur travail client.
S'il est possible de redémarrer l'ordinateur distant en changeant de système d'exploitation ou de retirer le disque dur, l'ordinateur ne peut pas être considéré comme totalement sûr... mais dans ce cas, la base de données elle-même ne sera pas sûre.