Installation et utilisation de SSH sous Linux
But de ce document
Ce document me sert de mémo pour installer et utiliser SSH sous Linux. Je le diffuse en espérant qu’il puisse servir à d’autres personnes.
Les instructions de ce document sont données pour une Debian ETCH, mais il est possible de les adapter aux autres distributions.
Pré-requis
Avoir installé une Debian de Base :
Installation et configuration de SSH
Installation du paquet :
# aptitude install openssh-client openssh-server
Une fois les paquets installés, le client et le serveur seront directement utilisables. Il est possible depuis ce poste de se connecter à un autre serveur SSH ou il est possible de se connecter à ce poste via SSH depuis un autre poste.
Cependant, il est préférable pour augmenter la sécurité, de modifier le fichier de configuration :
Fichier de configuration du démon sshd :
/etc/ssh/sshd_config
Pour interdire la connexion directe sous root, modifier la ligne suivante :
PermitRootLogin no
Ajouter la ligne suivante pour autoriser uniquement pglinux
AllowUsers pglinux
Redémarrer le démon pour prendre en compte les modifications :
/etc/init.d/ssh restart
Commandes pour se connecter à un serveur distant
La commande suivante, permet de se connecter au serveur pgdebian sous l’identité de celui qui lance la commande :
$ ssh pgdebian
Il est possible de préciser un autre login avec le paramètre -l :
$ ssh -l root pgdebian
Il est possible aussi d’utiliser la syntaxe suivante pour se connecter à pgdebian sous root :
$ ssh root@pgdebian
Connexion à un serveur SSH via un autre serveur SSH
Si vous avez deux serveurs SSH mais qu’il est nécessaire de se connecter au premier pour pouvoir accéder au deuxième, cette commande permet de réaliser les deux connexions :
ssh root@serveur1 -t ssh root@serveur2
Remarque : Cela est surtout intéressant si la connexion aux serveurs se fait via une clé public (cf chapitre suivant)
Connexion SSH en utilisant une clé privée et une clé public
Une connexion SSH en utilisant une clé privée et une clé public est plus sécurisée qu’une connexion classique par mot de passe. De plus elle permet d’éviter de ressaisir un mot de passe à chaque connexion.
Création de la clé privée et de la clé public :
$ ssh-keygen -t dsa
Après la saisie de la pass-phrase (Mot de passe long), cette commande va générer deux fichiers dans le dossier « /.ssh » :
Ensuite, il faut exporter la clé public sur le ou les serveurs distant à utiliser avec ssh :
$ ssh-copy-id -i .ssh/id_dsa.pub root@NomDuServeurSSH
Après la copie de cette clé, à chaque connexion via ssh, la pass-phrase sera demandée.
Pour éviter de saisir la pass-phrase (qui normalement est encore plus longe que le mot de passe), il est possible d’utiliser le démon ssh-agent qui se chargera de mémoriser la pass-phrase pour éviter de la ressaisir :
Sous Debian le démon ssh-agent est lancé automatiquement au démarrage de la session.
La commande suivante, permet de mémoriser la pass-phrase une fois pour toute pendant la durée de la session :
$ ssh-add
Une fois cette commande saisie, il est possible de se connecter aux différentes serveurs ssh sans saisir aucun mot de passe ou pass-phrase.
$ ssh root@NomDuServeurSSH
Copier des fichiers entre un serveur et un client ssh avec scp
La commande scp livrée avec le paquet ssh, permet de copier des fichiers entre le serveur et le client ssh d’une manière sécurisée.
La commande suivante, permet d’envoyer dans le répertoire /tmp du serveur pgdebian le fichier /etc/fstab disponible sur le serveur local :
$ scp /etc/fstab root@pgdebian:/tmp
Exécuter une commande à distance avec ssh
La commande ssh, permet également d’exécuter une commande sur un serveur distant.
Par exemple, la commande suivante, permet de se connecter sous root sur l’ordinateur pgdebian et d’exécuter la commande halt pour arrêter l’ordinateur :
$ ssh root@pgdebian halt
Lancer une application graphique disponible sur un serveur distant
Pour lancer une application graphique sur un serveur distant, il suffit de se connecter avec l’option « -X » :
$ ssh -X user@serveur
Et de lancer l’application graphique en ligne de commande.
Le paramètre « -C » permet de comprimer les données ce qui améliore (un peu) la réactivité :
$ ssh -CX user@serveur
Remarque : Une méthode plus efficace pour lancer des applications graphiques est de passer par un serveur FreeNX et un client NoMachine comme expliqué dans ce mémo :
Ajouter dans « Konsole » des signets vers des serveurs SSH
Pour les utilisateurs de KDE et de Konsole, il est possible d’ajouter dans les signets des liens vers des serveurs SSH. Pour cela, il faut :
Lien pour avoir plus d’informations
$ man ssh
ou : http://www.delafond.org/traducmanfr/man/man1/ssh.1.html
Historique des modifications
Version | Date | Commentaire |
---|---|---|
0.1 | 19/11/04 | Création par Tony GALMICHE |
0.2 | 20/12/04 | Ajout chapitres « Commandes pour se connecter à un serveur distant » et « Exécuter une commande à distance avec rsh » |
0.3 | 30/05/05 | Ajout « Connexion SSH en utilisant une clé privée et une clé public » |
0.4 | 03/07/06 | Mise à jour suite aux remarque sur le forum |
0.5 | 06/08/08 | Ajout « Connexion à un serveur SSH via un autre serveur SSH » et « Ajouter dans « Konsole » des signets vers des serveurs SSH » et « Lancer une application graphique disponible sur un serveur distant » |
Commentaires
Installation et utilisation de SSH sous Linux
Merci Tony. j’ai essayé, ca marche now.
Installation et utilisation de SSH sous Linux
Par défaut, il n’y a que root à pouvoir écrire dans /etc et non pas le groupe de root.
Il faut donc changer les droits de /etc :
chmod 775 /etc
Installation et utilisation de SSH sous Linux
Bonjour !
J’ai installé ssh sous debian. J’ai interdit de se logguer via ssh sous root. J’ai autoriser l’utilisateur raouf à faire du ssh sur la machine debain à partir d’une machine distante. raouf fait du ssh à partir d’une machine distante, mais il ne peut pas transferer des fichiers par ftp en utilisant winscp dans le répertoire /etc. J’ai compri qu’il fallait lui donner les droits de root, ce que j’ai fait par la commande "usermod -g 0 raouf". Mais Il n’arrive toujours pas à transférer des fichiers dans /etc. Je sai pas si quelqu’un a une idée. Merci.
> Installation de SSH sur une Debian Testing
Pour ton problem d’installation de SSH avec apt-get install, tu dois vérifier tes sources dans le fichiers /etc/apt/source.list, cest dans ce fichier que tu inscrit le nom des sites où apt-get cherchera les pacquet concerné. Si tes sites ne sont pas a jours il y aura tjrs une erreur !!
PS noubli pas les update apres chaque changement du fichier !
apt-get update
Installation et utilisation de SSH sous Linux
Bonjour, merci pour les remarques. Je viens de mettre en ligne une nouvelle version pour en tenir compte.
A bientôt. Tony
Installation et utilisation de SSH sous Linux
Tant que j’y suis, il y a une erreur dans le texte :
Il est possible aussi d’utiliser la syntaxe suivante pour se connecter à pgdebian sous root :
ssh root@pgdebian
(le mailto: est en trop, je ne sais pas comment l’ecrire dans le commentaire)
Installation et utilisation de SSH sous Linux
Euh, je ne suis pas expert, donc je vais peut etre dire une connerie, mais rsh est, en quelque sort l’ancêtre de la commande ssh. Pour etre plus précis, ssh remplace toutes les commandes commencant par r* (rsh, rlogin, rexec, rcp, ...).
J’avais déjà remarqué sous debian que rsh n’était en fait que ssh.
toto : $ type rsh
rsh is /usr/bin/rsh
toto : $ ls -l /usr/bin/rsh
lrwxrwxrwx 1 root root 21 2005-01-31 16:58 /usr/bin/rsh -> /etc/alternatives/rsh
toto : $ ls -l /etc/alternatives/rsh
lrwxrwxrwx 1 root root 12 2005-01-31 16:58 /etc/alternatives/rsh -> /usr/bin/ssh
toto : $
Pour lancé une commande a distance, tu peux utiliser :
ssh utilisateur@machine /chemin/vers/commande
> Installation de SSH sur une Debian Testing
Bonjour,
Debian 2.2.x, ce n’est pas une testing mais une stable ?
Autrement, je n’ai jamais rencontré le moindre problème pour installer ssh sur une testing que ce soit avec le noyau 2.4 ou 2.6.
Donc, je n’ai pas vraiment d’idée pour résoudre ton poblème à part passer en testing ;-)
> Installation de SSH sur une Debian Testing
J’ai une erreur lors du :
apt-get install ssh
En fait, il me dit que zlib1g est nécessaire mais instable......
Ca marché trés bien avec une debian 2.2.x et la sur la 2.4.x ca ne marche plus....
> Installation de SSH sur une Debian Testing
Installation du paquet -> OK
Pour l’espace inseccable, je l’ai mis dans OOo, mais dans Spip, je ne sais pas faire.
Merci pour la relecture.