#!/bin/bash
# remote.bash: Utiliser ssh.

# Exemple de Michael Zick.
# Utilisé avec sa permission.


#   Présomptions:
#   ------------
#   fd-2 n'est pas capturé ( '2>/dev/null' ).
#   ssh/sshd présume que stderr ('2') sera affiché à l'utilisateur.
#
#   sshd est lancé sur votre machine.
#   Pour tout distribution 'standard', c'est probablement vrai,
#+  et sans qu'un ssh-keygen n'ait été effectué.

# Essayez ssh sur votre machine à partir de la ligne de commande :
#
# $ ssh $NOM_HOTE
# Sans configuration supplémentaire, un mot de passe vous sera demandé.
#   enter password
#   une fois fait,  $ exit
#
# Cela a-t'il fonctionné ? Si c'est la cas, vous êtes prêt pour plus d'action.

# Essayez ssh sur votre machine en tant que 'root' :
#
#   $  ssh -l root $NOM_HOTE
#   Lorsqu'un mot de passe vous est demandé, saisissez celui de root et surtout
#   pas le votre.
#          Last login: Tue Aug 10 20:25:49 2004 from localhost.localdomain
#   Saisissez 'exit' une fois terminé.

#  Les commandes ci-dessus vous donne un shell interactif.
#  Il est possible pour sshd d'être configuré dans le mode 'commande seule',
#+ mais cela dépasse le cadre de notre exemple.
#  La seule chose à noter est que ce qui suit fonctionnera dans le mode
#+ 'commande seule'.


# Une commande simple d'écriture sur stdout (local).

ls -l

# Maintenant la même commande basique sur une machine distante.
# Passez un nom d'utilisateur et d'hôte différents si vous le souhaitez :
USER=${NOM_UTILISATEUR:-$(whoami)}
HOST=${NOM_HOTE:-$(hostname)}

#  Maintenant, exécutez la commande ci-dessus sur l'hôte distant
#+ avec des communications cryptées.

ssh -l ${NOM_UTILISATEUR} ${NOM_HOTE} " ls -l "

#  Le résultat attendu est une liste du contenu du répertoire personnel de
#  l'utilisateur sur la machine distante.
#  Pour voir les différences, lancez ce script à partir d'un autre endroit que
#+ votre répertoire personnel.

#  En d'autres termes, la commande Bash est passée comme une ligne entre guillemets
#+ au shell distant, qui l'exécute sur la machine distante.
#  Dans ce cas, sshd fait  ' bash -c "ls -l" '   à votre place.

#  Pour des informations sur des thèmes comme ne pas avoir à saisir un mot de
#  passe pour chaque ligne de commande, voir
#+    man ssh
#+    man ssh-keygen
#+    man sshd_config.

exit 0
