La ligne de commande

Conventions dans la documentation

Convention des Symboles $ et # dans les Commandes Linux

Introduction

Dans les documentations, tutoriels, et exemples de commandes Linux, vous verrez souvent les symboles $ et # au début des lignes de commande. Ces symboles ne font pas partie de la commande elle-même, mais servent à indiquer dans quel contexte la commande doit être exécutée, que ce soit en tant qu'utilisateur normal ou administrateur (root).

Symbole $

Le symbole $ est utilisé pour représenter l'invite de commande d'un utilisateur non-root (c'est-à-dire un utilisateur sans privilèges administratifs). Cela signifie que la commande peut être exécutée directement par un utilisateur classique.

Exemple :

$ ls -l

Dans cet exemple :

Symbole #

Le symbole #, quant à lui, est utilisé pour représenter l'invite de commande d'un superutilisateur (root) ou lorsque la commande nécessite des privilèges administratifs. Si vous voyez une commande précédée de #, cela signifie que vous devez l'exécuter avec des privilèges élevés, généralement en utilisant sudo (si vous êtes un utilisateur non-root).

Exemple :

# apt update

Dans cet exemple :

Résumé

Exemple Comparatif :

$ lsmod | grep 8021q      # Commande exécutée par un utilisateur normal
# systemctl restart nginx  # Commande nécessitant des privilèges root

Remarque

Le symbole $ ou # n'est pas à taper lors de l'exécution des commandes, il est uniquement là pour indiquer le contexte d'exécution.

Conclusion

Ces conventions sont très courantes dans les environnements Unix/Linux et aident à comprendre rapidement si une commande peut être exécutée par un utilisateur classique ou si elle nécessite des droits d'administrateur.

Memo en vrac

Pour quitter une session Telnet :
Ctrl + $

Pour afficher la version du système (Ubuntu):

lsb_release -a

Pour obtenir des informations sur le matériel :

sudo lshw

Pour obtenir des informations sur des composants précis :

sudo lshw -C cpu
sudo lshw -C memory
sudo lshw -C network
sudo lshw -C disk

 

SSH

SSH

Utilisation d'une YubiKey comme clé SSH avec FIDO2

Prérequis

Vérifier que OpenSSH 8.2 ou supérieur est installé sur le client et le serveur.

ssh -V

Vérifier la compatibilité de la YubiKey

Deux types de paires de clés sont compatibles avec FIDO2 : ecdsa-sk et ed25519-sk.

Les clés ed25519-sk nécessitent une YubiKey avec un firmware en version 5.2.3 ou supérieure, compatible FIDO2.

Pour afficher la version du firmware de la YubiKey :

lsusb -v 2>/dev/null | grep -A2 Yubico | grep "bcdDevice" | awk '{print $2}'

Installer les dépendances nécessaires

sudo apt install libfido2-dev

Générer une paire de clés SSH avec FIDO2

Créer une clé SSH sécurisée par YubiKey :

ssh-keygen -t ed25519-sk -C "$(hostname)-$(date +'%Y%m%d')-yubikey1"

Une partie de la clé privée est stockée dans la YubiKey. Elle repose sur un mécanisme de défi-réponse sécurisé. La clé publique, un handle et des données d’attestation sont générés.

Copier la clé publique sur un serveur

Sous Linux :
ssh-copy-id -i ~/.ssh/id_ed25519-sk.pub user@serveur
Sous Windows (PowerShell) :
type $env:USERPROFILE.ssh\id_ed25519-sk.pub | ssh user@serveur "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Remplacer user@serveur par les informations du serveur cible.

Sources

https://forums.lawrencesystems.com/t/ssh-with-yubikey-fido-u2f-authentication/13024

https://developers.yubico.com/SSH/Securing_SSH_with_FIDO2.html

Screen

La commande screen permet de gérer des sessions terminal détachables et persistantes. Utile pour lancer des processus longs sur un serveur distant et se déconnecter sans interrompre leur exécution.

Commandes de base

Commandes internes utiles

(toutes commencent par Ctrl + a)

c : Créer une nouvelle fenêtre
n : Aller à la fenêtre suivante
p : Aller à la fenêtre précédente
" : Liste des fenêtres
k : Fermer la fenêtre active
A : Renommer la fenêtre active

Astuces

Démarrer un processus dans une session détachée directement :
screen -dmS nom_session commande

Reconnecter une session même si elle est attachée ailleurs :
screen -x nom_session

Personnaliser le fichier de configuration : ~/.screenrc

Raccourcis claviers