Mon problème est similaire à celui-ci J'essaie d'automatiser la partie où je peux accéder à la machine distante et exécuter une commande en tant que super utilisateur. Cela fonctionne bien jusqu'à ce qu'il se connecte, comme ici :-
$ ssh-keygen -t rsa -b 2048
à
$ ssh-copy-id id@server
id@server's password:
$ ssh id@server
id@server:~$
L'avantage pour moi est que je peux demander à l'utilisateur le mot de passe de la machine distante une seule fois (lors de la génération des clés ssh), et après cela, lors de l'exécution d'une commande en tant que super-utilisateur, il ne devrait pas demander le mot de passe à nouveau, c'est-à-dire qu'il ne devrait pas avoir besoin d'une commande comme celle qui suit:-.
sudo su
Y a-t-il un moyen de le faire ? J'ai essayé de sauvegarder le mot de passe en tant que variable, puis de substituer la valeur comme :-.
echo -n "Enter password > "
read passwd
sshpass -p $username ssh -o StrictHostKeyChecking=no $username@$server sudo some_application &
Il demandera le mot de passe là où je ne peux pas substituer la valeur de la variable que j'ai déclarée.