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 :
- le serveur
- le client
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 à :
- créer le dossier ~/.ssh
- avoir un fichier ~/.ssh/environment
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.
La configuration suivante implique d’avoir correctement créé une clé RSA sur la machine dite serveur et d’avoir placé correctement les fichiers résultant afin de permettre l’accès.
Si ce n’est pas fait, une fois le serveur openssh relancé, vous risquez de ne plus pouvoir vous connecter autrement que par un écran et un clavier ; c’est à dire physiquement sur la machine.
Pour éviter cela, tant que vous n’êtes pas sûr que la clé DSA ou RSA fonctionne, mettez la variable PasswordAuthentication à yes.
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 qui permet de renseigner le fait qu’un code couleur arrive
- le code couleur (qui va suivre)
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 :
- 0;30m : Noir
- 0;31m : Rouge
- 0;32m : Vert
- 0;33m : Brun / Orange
- 0;34m : Bleu
- 0;35m : Violet / Magenta
- 0;36m : Cyan
- 0;37m : Blanc
- 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.
La bannière ci-avant a été générée à l’aide de figlet et boxes, avec la commande suivante :
figlet Blankoworld | boxes -d diamonds -a hcvc
Les couleurs ont été ajoutées par la suite.
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 .-' .'.' :- ,'/,',','/ /./|\.\ \`,`,-,`.`. : `||-.`-._
.' ||.-' ,','/,' / / / + : + \ \ \ `,\ \ `.`-|| `. `-.
.-' |' _','<', ,' / / // | \\ \ \ `, ,`.`. `. `. `-.
: - `. `.
Bienvenue sur portedesetoiles (PDE) !
Ce qui donne :
_______
_,.--==###\_/=###=-.._
..-' _.--\\_//---. `-..
./' ,--'' \_/ `---. `\.
./ \ .,-' _,,......__ `-. / \.
/`. ./\' _,.--'':_:'"`:'`-..._ /\. .'\
/ .'`./ ,-':":._.:":._.:"+._.:`:. \.'`. `.
,' // .-''"`:_:'"`:_:'"`:_:'"`:_:'`. \ \
/ ,' /'":._.:":._.:":._.:":._.:":._.`. `. \
/ / ,'`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_\ \ \
,\\ ; /_.:":._.:":._.:":._.:":._.:":._.:":\ ://,
/ \\ /'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'\ // \.
|//_ \ ':._.:":._.+":._.:":._.:":._.:":._.:":._\ / _\\ \
/___../ /_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"'. \..__ |
| | '":._.:":._.:":._.:":._.:":._.:":._.:":._.| | |
| | |-:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`| | |
| | |":._.:":._.:":._.:":._.:":._.+":._.:":._.| | |
| : |_:'"`:_:'"`:_+'"`:_:'"`:_:'"`:_:'"`:_:'"`| ; |
| \ \.:._.:":._.:":._.:":._.:":._.:":._.:":._| / |
\ : \:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'"`:_:'.' ; |
\ : \._.:":._.:":._.:":._.:":._.:":._.:":,' ; /
`. \ \..--:'"`:_:'"`:_:'"`:_:'"`:_:'"`-../ / /
`__.`.'' _..+'._.:":._.:":._.:":._.:":.`+._ `-,:__`
.-'' _ -' .'| _________________________ |`.`-. `-.._
_____' _..-|| :.' .+/;;';`;`;;:`)+(':;;';',`\;\|. `,'|`-. `_____
MJP .-' .'.' :- ,'/,',','/ /./|\.\ \`,`,-,`.`. : `||-.`-._
.' ||.-' ,','/,' / / / + : + \ \ \ `,\ \ `.`-|| `. `-.
.-' |' _','<', ,' / / // | \\ \ \ `, ,`.`. `. `. `-.
: - `. `.
Bienvenue sur portedesetoiles (PDE) !