−Table des matières
Retour à ssh.
SSH avec Windows
Les systèmes linux et MacOS ont un support "natif" de ssh en ligne de commande, depuis la console ou shell.
Sous windows il existe PuTTY, un équivalent rustique. Mais à la place, on recommande fortement l'emploi de MobaXterm, un outil efficace et qui fait bien plus (tels que le montage de systèmes de fichiers, et meme l'interfaçage graphique distant de serveurs).
Télécharger MobaXterm Home Edition: https://mobaxterm.mobatek.net/download-home-edition.html
veillez à bien installer la version officielle. On m'a remonté qu'il existait au moins une version "pirate" avec un malware intégré, distribué par un canal tiers, non officiel.
Génération d'une clé SSH sous MobaXterm
Pour la génération et la gestion des clés SSH, voyez le menu Tools→MobaKeyGen (SSH key generator)
(ou sinon PuTTYGen
en anglais)
pour tout autre usage qu'un test, on recommande fortement la double protection de l'usage de votre clé grâce à une "passphrase". Elle la protège contre un vol local (par exemple de votre poste de travail), et donc d'une impersonnification directe sur les sites ou la clé publique a été déposée. Le système de clé ssh est pratique mais sans passphrase il peut se retrouver être pire qu'un login par mot de passe traditionnel.
pensez aussi à fournir un nom d'utilisateur explicite lors de la création de votre clé. Sans cela, il deviendra vite impossible de les gérer correctement. Ci dessous, il suffit d'indiquer votre nom dans le champ
Key Comment
. On peut d'ailleurs être utilement plus verbeux, par exemple avec jeremie@laptop
et jeremie@bureau
: c'est une bonne pratique de ne pas utiliser les mêmes clés sur deux postes différents. Si l'on me vole mon PC portable, je saurai quelles clés retirer.
L'opération va remplir les champs « Public key » et « Key fingerprint ».
Utilisez les boutons:
“Save public key” : pour sauvegarder votre clé publique (ex. maclé.publique.txt) “Save private key” : pour sauvegarder votre clé privée (ex. maclé.privée.ppk)
Un endroit classique c'est dans un dossier nommé .ssh (oui, point-ssh), placé dans votre espace utilisateur C:/Users/xxx/.ssh.
ne fermez pas cette fenêtre tout de suite, car elle servira aussi à créer les clés utilisables pour se connecter à des serveurs et services linux.
C'est la clé publique qu'il va falloir copier depuis la zone de texte affichée et ajouter à votre cible ~/.ssh/authorized_keys
(ou instance_keys
suivi d'un scw-fetch-ssh-keys --upgrade
chez scaleway). N'essayez pas de copier les fichiers de putty qui sont incompatibles avec OpenSSH !
Clé pour utilisation par SSH ou par git
Malheureusement, le format ppk de MobaXterm n'est pas le standard habituel !
Vous allez devoir enregistrer une version "OpenSSH" de la clé. C'est nécessaire si vous utilisez un serveur linux, ou encore GitForWindows.
La encore, vous pouvez les enregistrer dans votre dossier C:/Users/xxx/.ssh
.
Clé publique
La clé publique sera transmise à un administrateur du serveur linux.
Copiez/collez le contenu de la boite “Public key for pasting into OpenSSH” ci-dessus dans un éditeur de texte comme MobaTextEditor (MobaXterm → tools), Ultraedit, Winedt, vscode, eclipse (évitez absolument word qui modifie les textes unilatéralement!). Sauvez alors ce fichier par exemple dans C:/Users/xxx/.ssh/id_rsa.pub
(l'extension .pub
est importante, elle indique que c'est la partie publique de la clé).
Sous le (crétin de) Windows, le type sera reconnu comme étant Document Microsoft Publisher … mais cette application sera incapable d’ouvrir ce type de fichier ! Utilisez plutôt clic droit ouvrir avec et choisissez un éditeur de texte si vous voulez vérifier son contenu.
Le format de clé SSH publique qui nous importe doit être sous la forme :
ssh-rsa AAAB3NzaC1yc2EAAAAD…XQKmfTSIIavgjoAJohe3Xb8d8RzkA7 jeremie@laptop.
Cette clé est à transmettre ensuite à un administrateur (système/réseau) du serveur. Celui-ci ajoutera votre clé publique sous la forme d'une ligne aux autorisations d'accès existants pour l'utilisateur ciblé sur le serveur (ex./home/jeremie/.ssh/authorized_keys
). Attention dans la manipulation de ne pas écraser les clés publiques déjà présentes, vous interdiriez l'accès aux propriétaires de ces clés !!
Ne confondez pas non plus sur le serveur l'éventuelle clé publique (et privée) de l'utilisateur distant. S'il existe des fichiers/home/jeremie/.ssh/id_rsa.*
, ce sont la clé qui appartient à l'utilisateur jérémie-sur-le-serveur, ne la modifiez pas non plus, elle peut servir ailleurs !
particularité de l'hébergeur de serveurs Scaleway pour l'utilisateur root : il ne sert à rien d'ajouter la clé au
/root/.ssh/authorized_keys
normal, car ce fichier se fait réinitialiser à chaque démarrage (avec les clés configurées sur le site de Scaleway) ! Il faut en fait ajouter la clé publique au fichier /root/.ssh/instance_keys
, puis lancer la commande scw-fetch-ssh-keys --upgrade
pour la faire reconnaître.
Création de la clé privée
Cette clé sera conservée dans son espace utilisateur, jamais transmise.
A partir de la fenêtre MobaXterm SSH Key Generator, allez dans le menu “Conversion”, et “Export OpenSSH key” (c'est votre clé ssh privée), que vous sauverez au même endroit que la clé publique mais sous le nom C:/Users/xxx/.ssh/id_rsa
(oui, ce fichier n'a aucune extension). On doit donc avoir le couple C:/Users/xxx/.ssh/id_rsa
(clé privée) et C:/Users/xxx/.ssh/id_rsa.pub
(clé publique associée).
Même si vous n'êtes pas obligés, il est fortement conseillé de sauvegarder votre clé privée sous le nom id_rsa
et la clé publique respective id_rsa.pub
, notamment si vous allez utiliser ssh
ou git
. Plus rarement, on utilise plusieurs clés SSH et dans ce cas, il faudra alors indiquer quelle clé on veut utiliser.
Vérifiez bien que le contenu de votre SSH privée est sous la forme suivante. Sinon elle ne sera pas reconnue :
-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAEPt2beQMCWjX8GkofVBECXZkS7... ... ...mc0rtS8d4cZ35IKo0uKziqw+fQEPt2beQMCWjX8 -----END RSA PRIVATE KEY-----
Bonnes pratiques
Votre clé privée … est privée ! Elle ne doit jamais être distribuée ou transmise à qui que ce soit. Seule la clé publique peut vous être demandée ! De même votre “passphrase” protège l'emploi de votre clé privée et elle est complètement privée.
Ne partagez pas votre couple de clé privée + publique, mais créez bien une clé par personne physique. La clé est effet utile aussi pour identifier qui vient sur un serveur ou qui soummets des modifications logicielles dans git.
Votre "agent" gère votre clé SSH avec passphrase
Sous linux ou MacOS, c'est l'équivalent de ssh-add <nomdelaclé.prv>
.
Dans le cas ou votre clé est protégéée par une passphrase, vous gagnerez à utiliser un "agent" qui se charge de se souvenir du mot de passe pour la durée de votre session sur le poste. Dans MobaXterm c'est dans le menu global Settings / Configuration
, onglet SSH
:
au passage, vous pouvez cocher la boite "keepalive" pour maintenir vos sessions ouvertes (c'est un risque à prendre en compte si vous allez administrer des serveurs de production par exemple). Sous linux ou MacOS c'est la ligne
TCPKeepAlive yes
du paragraphe correspondant au serveur dans votre fichier ~/.ssh/config
.
La passphrase que vous avez entrée vous sera demandée, ce qui validera que tout est bien.
Session
Relancez enfin MobaXterm (il semble que cela soit nécessaire).
Puis créez une "session" vers votre serveur:
- adresse ip
- utilisateur
root
(si scaleway) - le port s'il n'est pas standard (une bonne idée en général)
- et n'oubliez pas de lui indiquer votre clé privée là ou vous l'avez stockée
Si le serveur détient bien la partie publique de votre clé, il devrait vous accueilir pour une session en ligne de commande. Si ce n'est pas votre cas, consultez le fichier distant /var/log/auth.log
ou activez des options "verbose" dans mobaxterm.
à noter l'excellente idée de MobaXterm de présenter aussi le système de fichier dans la marge de gauche (via
sftp
, un partage de fichier un peu comme FTP mais intégré et donc sécurisé par ssh
).
Sans cela, il faudra regarder du coté de filezilla par exemple.
Suite sur ssh.