Présentation

OpenSSH permet d’accéder de manière sécurisée à son ordinateur en vue de le contrôler de différentes manières en utilisant tout un tas d’outils libres.

C’est un accès qui permet d’ajouter une couche de sécurité à différents protocoles, par exemple le protocole FTP peut désormais être utilisé en tant que FTPs.

OpenSSH est très utilisé pour l’accès à différents serveurs à travers le monde.

Installation

Sachant qu’openssh est souvent composé de deux éléments :

L’installation s’effectue donc de manière simple :

apt-get install openssh-server

Si vous voulez utiliser le client seulement et vous connecter à un serveur, faites :

apt-get install openssh-client

Session SSH-Agent

SSH-Agent permet de sauver pour un temps défini la session SSH afin de ne pas avoir à retaper son mot de passe à tout bout de champ.

Dans une session graphique, en général on lance ssh-agent startxfce4 (pour XFCE4). Pour les distributions populaire, ceci est transparent pour l’utilisateur.

Cependant, dans une session non-graphique, il est intéressant d’obtenir la même chose. À cet effet je vous propose le code suivant à ajouter dans votre fichier .bashrc (trouvé sur http://mah.everybody.org/docs/ssh ) :

SSH_ENV="$HOME/.ssh/environment"

function start_agent {
     echo "Initialising new SSH agent..."
     /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
     echo succeeded
     chmod 600 "${SSH_ENV}"
     . "${SSH_ENV}" > /dev/null
     /usr/bin/ssh-add;
}

# Source SSH settings, if applicable

if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
     #ps ${SSH_AGENT_PID} doesn't work under cywgin
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
         start_agent;
     }
else
     start_agent;
fi

Pensez à :

Could not open a connection to your authentication agent SSH-Add Error

Si vous rencontrez cette erreur, la commande suivante devrait régler le problème :

eval `ssh-agent`

Exemple de fichier de configuration pour le serveur

Le fichier de configuration suivant a été récupéré/modifié d’un serveur Debian quelconque.

Voici un exemple de fichier de configuration pour OpenSSH :

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

UsePAM yes

Personnalisation du message d’accueil

Il est toujours sympathique d’accueillir ses invités avec un message d’accueil personnalisé, une sorte de bannière.

Pour cela c’est très simple, il suffit de modifier le fichier /etc/motd. C’est le contenu entier de ce fichier qui apparaîtra à la connexion de ssh.

Exemple :

echo "Je viens d'ajouter une ligne dans le message d'accueil de SSH" >> /etc/motd

Ajouter des couleurs dans le message d’accueil

Oui, c’est possible, on peut ajouter des couleurs au message d’accueil !

Il faut obtenir à peu près la chaîne suivante avant un texte : ^[[0;31m.

Pour cela, vous devez connaître deux choses :

Le caractère d’échappement, sous vim, s’obtient en appuyant sur [Ctrl] + [V], puis [Échap], ce qui vous donne le fameux ^[ du début.

Pour le code couleur qui suit, voici une aide :

  1. 0;30m : Noir
  2. 0;31m : Rouge
  3. 0;32m : Vert
  4. 0;33m : Brun / Orange
  5. 0;34m : Bleu
  6. 0;35m : Violet / Magenta
  7. 0;36m : Cyan
  8. 0;37m : Blanc
  9. 0;m : Défaut (couleur choisie par votre shell)

Si vous rencontrez des difficultés, je vous invite à lire le tutoriel sur les couleurs du shell d'après le siteduzero.com . Rappelez vous que le caractère d’échappement appris ci-avant remplace le code 033 dudit tutoriel.

Exemples

Vous vous en douterez, je me suis amusé à faire différents messages d’accueils. Les voici.

Vampirisme

^[[0;31m __     __                    _     ^[[0;m _
^[[0;31m \ \   / /_ _ _ __ ___  _ __ (_)_ __^[[0;m(_)___   _ __ ___  ^[[0;31m ___
^[[0;31m  \ \ / / _` | '_ ` _ \| '_ \| | '__^[[0;m| / __| | '_ ` _ \ ^[[0;31m/ _ \
^[[0;31m   \ V / (_| | | | | | | |_) | | |  ^[[0;m| \__ \_| | | | | |^[[0;31m  __/
^[[0;31m    \_/ \__,_|_| |_| |_| .__/|_|_|  ^[[0;m|_|___(_)_| |_| |_|^[[0;31m\___|
^[[0;31m                       |_|
^[[0;35m
                            ^^
                       /\__{^^}__/\
                      / _        _ \
                      \/ \/\ww/\/ \/
^[[0;m
      Bienvenue sur le dépôt de fichiers vampiris.me !

Ce qui donne :

  __     __                    _      _
  \ \   / /_ _ _ __ ___  _ __ (_)_ __(_)___   _ __ ___   ___
   \ \ / / _` | '_ ` _ \| '_ \| | '__| / __| | '_ ` _ \ / _ \
    \ V / (_| | | | | | | |_) | | |  | \__ \_| | | | | |  __/
     \_/ \__,_|_| |_| |_| .__/|_|_|  |_|___(_)_| |_| |_|\___|
                        |_|
                             ^^
                        /\__{^^}__/\
                       / _        _ \
                       \/ \/\ww/\/ \/

      Bienvenue sur le dépôt de fichiers vampiris.me !

Blankoworld

^[[1;34m
        /\          /\          /\          /\          /\          /\
     /\//\\/\    /\//\\/\    /\//\\/\    /\//\\/\    /\//\\/\    /\//\\/\
  /\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\
 //\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\
 \\//\/                                                                \/\\//
  \/ ^[[0;m     ____  _             _                           _     _        ^[[1;34m \/
  /\ ^[[0;m    | __ )| | __ _ _ __ | | _______      _____  _ __| | __| |       ^[[1;34m /\
 //\\^[[0;m    |  _ \| |/ _` | '_ \| |/ / _ \ \ /\ / / _ \| '__| |/ _` |      ^[[1;34m //\\
 \\//^[[0;m    | |_) | | (_| | | | |   < (_) \ V  V / (_) | |  | | (_| |      ^[[1;34m \\//
  \/ ^[[0;m    |____/|_|\__,_|_| |_|_|\_\___/ \_/\_/ \___/|_|  |_|\__,_|       ^[[1;34m \/
  /\ ^[[0;m                                                                    ^[[1;34m /\
 //\\/\                                                                /\//\\
 \\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\//
  \/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/
     \/\\//\/    \/\\//\/    \/\\//\/    \/\\//\/    \/\\//\/    \/\\//\/
        \/          \/          \/          \/          \/          \/
^[[0;m
Bienvenue dans le Blankoworld : Le monde de Blanko.

Ce qui donne :

/\          /\          /\          /\          /\          /\
/\//\\/\    /\//\\/\    /\//\\/\    /\//\\/\    /\//\\/\    /\//\\/\
/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\
//\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\
\\//\/                                                                \/\\//
\/      ____  _             _                           _     _         \/
/\     | __ )| | __ _ _ __ | | _______      _____  _ __| | __| |        /\
//\\    |  _ \| |/ _` | '_ \| |/ / _ \ \ /\ / / _ \| '__| |/ _` |       //\\
\\//    | |_) | | (_| | | | |   < (_) \ V  V / (_) | |  | | (_| |       \\//
\/     |____/|_|\__,_|_| |_|_|\_\___/ \_/\_/ \___/|_|  |_|\__,_|        \/
/\                                                                      /\
//\\/\                                                                /\//\\
\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\//
\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/
\/\\//\/    \/\\//\/    \/\\//\/    \/\\//\/    \/\\//\/    \/\\//\/
\/          \/          \/          \/          \/          \/

Bienvenue dans le Blankoworld : Le monde de Blanko.

Portedesetoiles

^[[0;35m                                _______
                        _,.--==###\_/=###=-.._
                    ..-'     _.--\\_//---.    `-..
                 ./'    ,--''     \_/     `---.   `\.
               ./ \ .,-'      _,,^[[0;36m......^[[0;35m__      `-. / \.
             /`. ./\'    _,.--''^[[0;36m:_:'"`:'`-...^[[0;35m_    /\. .'\
            /  .'`./   ,-'^[[0;36m:":._.:":._.:"+._.:`:^[[0;35m.  \.'`.  `.
          ,'  //    .-'^[[0;36m'"`:_:'"`:_:'"`:_:'"`:_:'^[[0;35m`.     \   \
         /   ,'    /^[[0;36m'":._.:":._.:":._.:":._.:":._.^[[0;35m`.    `.  \
        /   /    ,'^[[0;36m`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_^[[0;35m\     \  \
       ,\\ ;     /^[[0;36m_.:":._.:":._.:":._.:":._.:":._.:":^[[0;35m\     ://,
       / \\     /^[[0;36m'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'^[[0;35m\    // \.
      |//_ \   '^[[0;36m:._.:":._.+":._.:":._.:":._.:":._.:":._^[[0;35m\  / _\\ \
     /___../  /^[[0;36m_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"'. ^[[0;35m\..__ |
      |  |    '^[[0;36m":._.:":._.:":._.:":._.:":._.:":._.:":._.^[[0;35m|    |  |
      |  |    |^[[0;36m-:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`^[[0;35m|    |  |
      |  |    |^[[0;36m":._.:":._.:":._.:":._.:":._.+":._.:":._.^[[0;35m|    |  |
      |  :    |^[[0;36m_:'"`:_:'"`:_+'"`:_:'"`:_:'"`:_:'"`:_:'"`^[[0;35m|    ; |
      |   \   \^[[0;36m.:._.:":._.:":._.:":._.:":._.:":._.:":._^[[0;35m|    /  |
       \   :   \^[[0;36m:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'.^[[0;35m'   ;  |
        \  :    \^[[0;36m._.:":._.:":._.:":._.:":._.:":._.:":^[[0;35m,'    ;  /
        `.  \    \^[[0;36m..--:'"`:_:'"`:_:'"`:_:'"`:_:'"`-..^[[0;35m/    /  /
         `__.`.'' _^[[0;36m..+'._.:":._.:":._.:":._.:":.`+.^[[0;35m_  `-,:__`  ^[[0;m
      .-''    _ -' .'| _________________________ |`.`-.     `-.._
_____'   _..-|| :.' .+/;;';`;`;;:`)+(':;;';',`\;\|. `,'|`-.      `_____
^[[0;31m  MJP^[[0;m .-'   .'.'  :- ,'/,',','/ /./|\.\ \`,`,-,`.`. : `||-.`-._
          .' ||.-' ,','/,' / / / + : + \ \ \ `,\ \ `.`-||  `.  `-.
       .-'   |'  _','&lt;', ,' / / // | \\ \ \ `, ,`.`. `. `.   `-.
                                   :              - `. `.

                 Bienvenue sur portedesetoiles (PDE) !

Ce qui donne :

                                _______
                        _,.--==###\_/=###=-.._
                    ..-'     _.--\\_//---.    `-..
                 ./'    ,--''     \_/     `---.   `\.
                ./ \ .,-'      _,,......__      `-. / \.
             /`. ./\'    _,.--'':_:'"`:'`-..._    /\. .'\
            /  .'`./   ,-':":._.:":._.:"+._.:`:.  \.'`.  `.
          ,'  //    .-''"`:_:'"`:_:'"`:_:'"`:_:'`.     \   \
         /   ,'    /'":._.:":._.:":._.:":._.:":._.`.    `.  \
        /   /    ,'`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_\     \  \
       ,\\ ;     /_.:":._.:":._.:":._.:":._.:":._.:":\     ://,
       / \\     /'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'\    // \.
      |//_ \   ':._.:":._.+":._.:":._.:":._.:":._.:":._\  / _\\ \
     /___../  /_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"'. \..__ |
      |  |    '":._.:":._.:":._.:":._.:":._.:":._.:":._.|    |  |
      |  |    |-:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`|    |  |
      |  |    |":._.:":._.:":._.:":._.:":._.+":._.:":._.|    |  |
      |  :    |_:'"`:_:'"`:_+'"`:_:'"`:_:'"`:_:'"`:_:'"`|    ; |
      |   \   \.:._.:":._.:":._.:":._.:":._.:":._.:":._|    /  |
      \   :   \:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'.'   ;  |
      \  :    \._.:":._.:":._.:":._.:":._.:":._.:":,'    ;  /
      `.  \    \..--:'"`:_:'"`:_:'"`:_:'"`:_:'"`-../    /  /
      `__.`.'' _..+'._.:":._.:":._.:":._.:":.`+._  `-,:__`
      .-''    _ -' .'| _________________________ |`.`-.     `-.._
   _____'   _..-|| :.' .+/;;';`;`;;:`)+(':;;';',`\;\|. `,'|`-.      `_____
     MJP .-'   .'.'  :- ,'/,',','/ /./|\.\ \`,`,-,`.`. : `||-.`-._
             .' ||.-' ,','/,' / / / + : + \ \ \ `,\ \ `.`-||  `.  `-.
       .-'   |'  _','&lt;', ,' / / // | \\ \ \ `, ,`.`. `. `.   `-.
                                      :              - `. `.

                    Bienvenue sur portedesetoiles (PDE) !

Liens utiles