User Tools

Site Tools


secureshell:20220317

Atelier ssh avec Jean-Marc, 17/03/2022

Pour se connecter à serveur:

ssh serveur

Voir passer le trafic en clair

Sur le serveur, taper

nc -l -p 8080
  • nc = network cat → tout ce qui arrive sur le port 8080 apparait à l'écran (comme la commande cat, mais en réseau)
  • pour tester, aller sur autre machine et taper
curl -v telnet://serveur:8080/code>
je tape qqch [+enter]

→ “je tape qqch” apparait sur le terminal connecté au serveur

Logiciels

  • serveur : service sshd qui tourne
  • client : utiliser la commande ssh pour se connecter

Le serveur de Jean-Marc étant directement connecté à internet, il a fermé le port 22 et utilise ssh sur le port 24024 (non standard) pour avoir la paix (vs les attaques).

Client :

ssh -v serveur

→ verbeux : aussi quand quitte : info en plus

on peut aussi lancer une commande sur le serveur avec ssh :

ssh moneo uname -a
ssh moneo ls -l

Après avoir exécuté la commande, il termine la connexion chiffrée.

ssh fournit également la commande scp (secure copy): <copy>scp fichier.txt moneo:. scp fichier.txt moneo:</code> N.B. : les 2 sont équivalents, . = répertoire courant (= home directory par défaut)

md5sum : calcul du checksum avec MD5

md5sum fichier.txt
scp fichier.txt serveur:
ssh serveur md5sum fichier.txt
md5sum fichier.txt | ssh moneo md5sum -c -

dernière ligne = compare les 2 résultats de md5sum : si pareil = réussi (= fichiers identiques)

N.B. : scp fait cette vérification automatiquement et donne un message d'alerte si cela ne correspond pas.

autre commande fournie: sftp = ressemble à FTP mais avec une connexion ssh, pour lancer une session :

sftp serveur

on est connecté, et on peut utiliser les commandes comme avec ftp :

  • ls → liste du répertoire sur le serveur
  • pwd → liste du répertoire local

ssh -D : quasiment un VPN

ssh -D 8080 serveur
ss -tln

ss = show sockets : pour voir les ports utilisés

  • -t trafic TCP
  • -l listen : ce qui écoute
  • -n ne résoud pas les ports en noms de service

Si on configure le browser pour utiliser le port 8080, tout le trafic du navigateur est redirigé vers le serveur (pratique quand on veut voir une vidéo auvio et qu'on est à l'étranger avec un serveur accessible en Belgique).

Si on fait ctrl+C sur le serveur, la connexion est coupée.

port forwarding : se connecter sur un serveur et dire : le trafic qui arrive sur tel port, tu l'envoies sur une autre machine

ssh serveur fwd 80 -> local 8080

Pour se connecter de l'exterieur : jumphost : quand copie un fichier depuis l'extérieur sur le serveur, il le copie directeur sur une machine dans le réseau local du serveur (différent de port forwarding).

Fichiers de configuration

  • au niveau de la machine : /etc/ssh/ssh_config
  • au niveau de l'utilisateur : /home/username/.ssh/config
vi .ssh/config
Host moneo moneo.zongo.be
Port 24024

Plutôt que le standard 22, comme ça il ne faut pas taper ssh -p 24024 seveur.

Host serveur_boulot serveur.zongo.be

Permet de se connecter avec la commande suivante qui est plus facile à retenir :

ssh serveur_boulot

Dans le fichier config, mettre un Host proxy où on met tous les paramètres, ce qui permet de l'utiliser en tapant uniquement :

ssh proxy
Host *
port 22
IdentifyFile .ssh/id_ed25519.file

* = wildcard = s'applique aux autres machines que celles spécifiées.

On peut désactiver la possibilité de se connecter avec login + pwd, et utiliser une clé publique et une clé privée uniquement.

Clés ssh

Pour générer une paire de clés privée et publique :

ssh-keygen

Par défaut, c'est RSA.

ssh-keygen -l -f .ssh/id_ed25519

Output l'empreinte de la clé publique dans le fichier .ssh/id_ed25519.

ssh-keygen -l -v -f .ssh/id_ed25519

Pareil mais avec une présentation 2D de l'empreinte.

ssh-keygen -t ed25519

= génère une clé publique avec le protocole ed25519 qui utilise des algorithmes de chiffrement elliptique (= mieux que RSA). N.B. : pour RSA, il faut utiliser une taille de 2048.

Ensuite copier cette clé sur le serveur dans .ssh/authorized_keys: ssh-ed25519 AAAAkfjkdfj… username@serveur

ssh-copy-id : permet de copier la clé sur un serveur où elle n'est pas encore

ssh-copy-id -i clé

Options de ssh

ssh -o options
Host
Port
User
...
man ssh_config

Autres informations (HS)

tmux

  • pour spliter son terminal : tmux = terminer multiplexer

get entity

getent = get entity :

getent hosts moneo
127.0.1.1       moneo.zongo.be moneo

= va voir s'il connait un host (ordi) qui s'appelle moneo

aussi pour les users:

getent passwd carl
carl:x:1000:1000:Carl,,,:/home/carl:/bin/bash

fdfind

Remplace find, mieux.

Vérifier son matériel

  • état physique du disque dur : paquet smartctl
  • état (température) des processeurs : paquet lm-sensors (commande sensors)
secureshell/20220317.txt · Last modified: 2022/03/17 22:28 by carl