texinfo: Ajout de la page SSH.
parent
a668f5a9b9
commit
3d08cbedf9
111
crans.texi
111
crans.texi
|
@ -1520,11 +1520,118 @@ Une personne en qui on a totalement confiance a signé cette clef
|
||||||
Trois personnes en qui on a partiellement confiance ont signé cette clef
|
Trois personnes en qui on a partiellement confiance ont signé cette clef
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
|
|
||||||
@node SSH
|
@node SSH
|
||||||
@subsection SSH
|
@subsection SSH
|
||||||
|
|
||||||
TODO.
|
SSH (Secure Shell) est un protocole permettant d'exécuter des commandes
|
||||||
|
sur un serveur distant. Il utilise le port 22 en TCP.
|
||||||
|
|
||||||
|
Sa version 2 est spécifiée par les RFC
|
||||||
|
@itemize
|
||||||
|
@item
|
||||||
|
@uref{https://datatracker.ietf.org/doc/html/4250,4250},
|
||||||
|
@uref{https://datatracker.ietf.org/doc/html/4251,4251},
|
||||||
|
@uref{https://datatracker.ietf.org/doc/html/4252,4252},
|
||||||
|
@uref{https://datatracker.ietf.org/doc/html/4253,4253} et
|
||||||
|
@uref{https://datatracker.ietf.org/doc/html/4254,4254}.
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
@subsubsection OpenSSH
|
||||||
|
|
||||||
|
Le client de prédilection pour utiliser SSH est le client de la suite
|
||||||
|
OpenSSH (qui fourni également un serveur et d'autres utilitaires
|
||||||
|
permettant de gérer les clefs cryptographiques), disponible dans le
|
||||||
|
paquet Debian @code{openssh-client}.
|
||||||
|
|
||||||
|
@subsubsection Clefs SSH
|
||||||
|
|
||||||
|
Vous pouvez générer des clefs cryptographiques permettant de vous
|
||||||
|
authentifier directement sur le serveur distant (plutôt que par mot de
|
||||||
|
passe) avec l'utilitaire @code{ssh-keygen} ainsi :
|
||||||
|
|
||||||
|
@verbatim
|
||||||
|
ssh-keygen -t ${TYPE} -b ${BITS}
|
||||||
|
@end verbatim
|
||||||
|
|
||||||
|
Où @code{TYPE} peut être :
|
||||||
|
@itemize
|
||||||
|
@item
|
||||||
|
@code{rsa}
|
||||||
|
@item
|
||||||
|
@code{ecdsa} (dans ce cas @code{BITS} doit valoir 256, 384 ou 521)
|
||||||
|
@item
|
||||||
|
@code{ed25519} (dans ce cas @code{BITS} doit valoir 256)
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
@code{ssh-keygen} vous demande ensuite le chemin du fichier de clef
|
||||||
|
ainsi que sa passphrase et génère une clef privée ainsi qu'une clef
|
||||||
|
publique se terminant par @code{.pub}.
|
||||||
|
|
||||||
|
Un autre utilitaire, @code{ssh-copy-id} permet de copier la clef sur le
|
||||||
|
serveur distant par exemple :
|
||||||
|
|
||||||
|
@verbatim
|
||||||
|
ssh-copy-id -i ~/.ssh/id_ed25519.pub login@zamok.crans.org
|
||||||
|
@end verbatim
|
||||||
|
|
||||||
|
@quotation Attention
|
||||||
|
il faut absolument garder la clef privée sur votre serveur et ne pas
|
||||||
|
l'envoyer sur le serveur distant.
|
||||||
|
@end quotation
|
||||||
|
|
||||||
|
@subsubsection Exemples
|
||||||
|
|
||||||
|
À la première connexion @code{ssh} demande s'il faut faire confiance à
|
||||||
|
la clef du serveur :
|
||||||
|
|
||||||
|
@verbatim
|
||||||
|
benjamin@om ~ $ ssh gitlab.crans.org
|
||||||
|
The authenticity of host 'gitlab.crans.org (185.230.79.14)' can't be
|
||||||
|
established.
|
||||||
|
ECDSA key fingerprint is SHA256:StU+25vCTTs+opjyjMZTLvl+gvR+ViQWUkE1jRENnkQ.
|
||||||
|
Are you sure you want to continue connecting (yes/no/[fingerprint])?
|
||||||
|
@end verbatim
|
||||||
|
|
||||||
|
Il est de bon usage de confirmer l'authenticité de cette clef afin de ne
|
||||||
|
pas être vulnérable aux attaque de type Man in the Middle. Pour celà il
|
||||||
|
y a une solution : l'administrateur du serveur doit vous confirmer
|
||||||
|
l'empreinte (fingerprint) de la clef par un moyen sécurisé. Voici une
|
||||||
|
liste non exhaustive de moyens plus ou moins sécurisés :
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item
|
||||||
|
Si vous êtes vous-même l'administrateur du serveur la commande @code{for
|
||||||
|
key in /etc/ssh/ssh_host_*.pub; do ssh-keygen -lf $@{key@}; done} sur le
|
||||||
|
serveur pour afficher les empreintes de vos clefs.
|
||||||
|
@item
|
||||||
|
Se faire confirmer la clef oralement par l'administrateur.
|
||||||
|
@item
|
||||||
|
Se faire confirmer la clef par un mail d'un administrateur de confiance
|
||||||
|
signé GPG.
|
||||||
|
@item
|
||||||
|
Utiliser des clefs stockées dans le DNS (@pxref{DNS}) et signées DNSSEC,
|
||||||
|
ceci peut se faire en ajoutant l'option @code{-oVerifyHostKeyDNS=yes} à
|
||||||
|
@code{ssh}.
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
Une fois que vous vous êtes assuré de l'authenticité de la clef vous
|
||||||
|
pouvez entrer @code{yes} dans le prompt ci-dessus.
|
||||||
|
|
||||||
|
@code{ssh} vous demande ensuite votre mot de passe ou la passphrase de
|
||||||
|
votre clef, entrez le et appuyez sur Entrée pour vous connecter,
|
||||||
|
félicitations vous devriez avoir votre shell sur le serveur distant.
|
||||||
|
|
||||||
|
@subsubsection Exemple de conf ssh
|
||||||
|
|
||||||
|
Après avoir @code{ssh-copy-id} sa clef public comme précisé plus haut on
|
||||||
|
peut définir une conf qui permet d'aller sur nimporte quel serveur
|
||||||
|
depuis votre machine via un @code{ProxyJump}.
|
||||||
|
|
||||||
|
@verbatim
|
||||||
|
Host *.adm.crans.org
|
||||||
|
User _usernounou
|
||||||
|
ProxyJump _usernounou@hodaur.crans.org
|
||||||
|
@end verbatim
|
||||||
|
|
||||||
@node ZFS
|
@node ZFS
|
||||||
@subsection ZFS
|
@subsection ZFS
|
||||||
|
|
Loading…
Reference in New Issue