Skip to Content

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 :

  •  cf mon autre document sur ce sujet : http://www.coagul.org/article.php3 ?id_article=158

    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 » :

  •  La clé privée : id_dsa
  •  La clé public : id_dsa.pub

    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 :

  •  http://www.coagul.org/article.php3 ?id_article=330

    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 :

  •  Menu « Signet / Modifier les signets »
  •  Menu « Signet / Nouveau signet »
  •  Saisir dans la zone URL « ssh ://user@serveur »

    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.