Mémento GNU/Linux
Linux - SSH
SSH sans mot de passe
- Pour réaliser ce tour de passe-passe, il faut que l'utilisateur concerné existe sur la machine locale et la machine distante.
- Les exemples suivants utiliseront cette identification automatique.
- Sinon la syntaxe est la suivante :
[user@machine_locale ~]# ssh user@machine_distante
user@machine_distante's password:
Le mot de passe devra être renseigné à chaque fois.
Créer une clé publique et une clé privée côté client
[user@machine_locale ~]# ssh-keygen -t rsa
Lorsque ça demande une passphrase, faire deux fois Entrée.
Ca crée les fichiers id_rsa et id_rsa.pub dans le répertoire .ssh
[user@machine_locale ~]# ls ~/.ssh/
authorized_keys id_rsa id_rsa.pub known_hosts
Copier id_rsa.pub sur la machine distante en le renommant
[user@machine_locale ~]# scp .ssh/id_rsa.pub machine_distante:.ssh/authorized_keys
Répondre à la demande de mot de passe, le fichier est copié.
Ce fichier peut être copié et renommé par n'importe quelle méthode autre que scp.
Attention, cette copie écrasera tout ce qui se trouve dans machine_distante:.ssh/authorized_key.
Pour ne pas détruire les clés déjà présentes, ajouter manuellement le contenu de .ssh/id_rsa.pub dans machine_distante:.ssh/authorized_keys.
Se connecter sur la machine distante
[user@machine_locale ~]# ssh machine_distante
Plus aucun mot de passe n'est demandé à la connexion.
Problème possible
- Si ssh continue à demander un mot de passe, c'est un problème de droits sur le répertoire.ssh.
[user@machine_distante ~]# chmod 700 .ssh
Commandes et variables d'environnement avec SSH
Commande sur la machine distante avec SSH
- SSH permet de lancer une commande sur la machine distante
[user@machine_locale ~]# ssh machine_distante thunderbird
Thunderbird se lance avec la langue par défaut, l'anglais...
Pour retrouver ses variables d'environnement habituelles (Thunderbird en français), il faut charger le fichier /etc/profile
La syntaxe est la suivante :
[user@machine_locale ~]# ssh machine_distante ". /etc/profile;thunderbird"
Ne pas oublier le point et l'espace devant /etc/profile.