Serveur Debian

Administration con centré . com !

Serveur Debian

Command se connecter avec PuTTY
sans mot de passe via une clés SSH.

Connecter avec PuTTY sans mot de passe via une clé SSH présente plusieurs avantages, notamment en termes de sécurité et de commodité. Voici quelques raisons : Élimination des mots de passe - Authentification à deux facteurs - Protection par phrase de passe - Connexion automatique - Contrôle granulaire

Note : la clé SSH n'a rien à voir avec un certificat SSL !


Il existe plusieurs méthodes en voici une.


Le principe de connexion SSH (Secure Shell)

Le client (par exemple, un utilisateur utilisant PuTTY) initie une connexion au serveur SSH en spécifiant l'adresse IP ou le nom de domaine et le port (généralement le port 22).

Le serveur et le client négocient les protocoles de chiffrement à utiliser pour sécuriser la connexion.

Authentification et échange des clés publiques : Lors de la première connexion, le serveur envoie sa clé publique au client. Le client peut choisir de l'accepter et de l'ajouter à son fichier known_hosts pour vérifier l'identité du serveur lors des connexions futures.

Une fois la connexion établie de manière sécurisée, le client doit s'authentifier auprès du serveur. Ceci peut se faire de plusieurs manières, les plus courantes étant : L'utilisateur entre son mot de passe pour s'authentifier. ou l'utilisateur utilise une paire de clés (privée et publique). La clé publique est déjà placée sur le serveur dans le fichier ~/.ssh/authorized_keys, et le client utilise la clé privée pour s'authentifier.

Établissement du canal sécurisé : Tunnel chiffré : Une fois l'authentification réussie, un tunnel chiffré est établi entre le client et le serveur. Toutes les données transmises via cette connexion sont chiffrées, garantissant la confidentialité et l'intégrité des données.

username@remote_host

Configurer les clés SSH de connexion :

#sudo apt-get update && sudo apt-get install openssh-client   openssh-server                    
ssh-keygen   #Générer une paire de clés RSA  (publique et privée)
cat ~/.ssh/id_rsa.pub   #le "username@remote_host" ce trouve a la fin de la clé publique
ssh-copy-id username@remote_host   #Pour copier la clé publique vers le serveur. 
ssh username@remote_host  # test la connexion
sudo cat ~/.ssh/id_rsa  # copier le contenue dans une fichier local "privatKey.txt"  

#  Renforcer la sécurité, vous pouvez désactiver l'authentification par mot de passe et changer le port 22
 utilisez un numéro compris entre 49152 et 65535.

sudo nano /etc/ssh/sshd_config

Port 49155
PasswordAuthentication no
PubkeyAuthentication yes
#ListenAddress 192.168.1.1
#ListenAddress 192.168.1.23

PermitRootLogin no
ChallengeResponseAuthentication no
UsePAM yes

systemctl status ssh.service
sudo systemctl restart sshd
sudo ufw allow 49155/tcp

Cette commande génère une paire de clés RSA par défaut et vous demande où stocker les clés. Par défaut, elles seront stockées dans ~/.ssh/id_rsa pour la clé privée et ~/.ssh/id_rsa.pub pour la clé publique.

Remplacez username par votre nom d'utilisateur sur le serveur distant et remote_host par l'adresse IP ou le nom de domaine de votre serveur. Cette commande ajoute la clé publique au fichier ~/.ssh/authorized_keys sur le serveur distant.

Concersions Import key : la clé privée en format .ppk avec PuTTYgen
PuTTY utilise des fichiers de clé privée en format .ppk, donc cette conversion est nécessaire pour se connecter avec PuTTY.
Pour convertir votre clé privée en un format que PuTTY. Enregister la clé privée dans un fichier "privatKey.ppk"

Ce connecter avec PuTTY sans mot de passe
  • Dans "Session", entrez l'adresse du serveur distant (remote_host ou l'IP).
  • Dans "Connection" > "DATA" > "Auto-Login username", entrée le nom d'utilisateur 'username'
  • Dans "Connection" > "SSH" > "Auth", cliquez sur "Browse" et sélectionnez votre fichier "privatKey.ppk".
  • Revenez à "Session" et sauvegardez cette session en lui donnant un petit nom.

Serveur Internet et RPC

Le RPC est une technique utilisée pour permettre à un programme d'exécuter une procédure (ou une méthode) à distance. Cela facilite la communication entre les différentes parties d'une application distribuée.

  • Automatisation des Tâches Administratives
  • Surveillance et Gestion à Distance
  • Configuration et Déploiement Centralisés
  • Revenez à "Session" et sauvegardez cette session en lui donnant un petit nom.

Certificat

FormatExtension(s)Usage principalEncodage
PEM.pem, .crt, .cer, .keyCertificats, clés publiques/privées, chaînes de certificatsBase64
DER.der, .crt, .cerCertificats, principalement sur les systèmes WindowsBinaire
PKCS#12.pfx, .p12Stockage de certificats et de clés privéesBinaire
PKCS#7.p7b, .p7cChaînes de certificats (sans clé privée)Base64 ou Binaire
CER.cer, .crtCertificat (clé publique uniquement)PEM ou DER
CSR.csrDemande de signature de certificatBase64 (PEM)
OpenPGP.asc, .gpg, .pgpClés publiques/privées pour le chiffrement PGPASCII (asc), Binaire
JKS.jksStockage de certificats et de clés (Java KeyStore)Binaire
SPC.spcCertificats pour signer des logicielsBinaire
 

certificats GPG

gpg --full-generate-key génére une nouvelle paire de clés GPG (GNU Privacy Guard) gpg --list-keys liste des certificats GPG gpg --list-secret-keys liste des certificats GPG gpg --export --armor "contact@administralis.fr" > publickey.asc openssl rsa -pubin -inform PEM -in publickey.asc -outform PEM -out publickey.pem gpg --export --armor "nom@example.com" > publickey.asc Exporter la clé publique au format PEM openssl rsa -pubin -inform PEM -in publickey.asc -outform PEM -out publickey.pem convertir cette clé publique en format PEM en utilisant OpenSSL gpg --export-secret-keys --armor "nom@example.com" > privatekey.asc Exporter la clé privée au format PEM gpg --export-secret-key --armor "nom@example.com" | \ gpg --dearmor | openssl rsa -inform DER -outform PEM -out privatekey.pem convertir le fichier au format PEM. GPG stocke la clé privée dans un format qui doit être converti pour être utilisé en tant que clé privée standard (PEM)
Supprimer un certificat :
gpg --list-secret-keys gpg --list-keys pub rsa2048 2024-01-01 [SC] ABCD1234EFGH5678IJKL9012MNO34567PQR89STU uid [ultimate] Nom de l'utilisateur <email@example.com> sub rsa2048 2024-01-01 [E] gpg --delete-key ABCD1234EFGH5678IJKL9012MNO34567PQR89STU gpg --delete-secret-key ABCD1234EFGH5678IJKL9012MNO34567PQR89STU
ahe19j7rb9f7

certificats avec OpenSSL

openssl genpkey -algorithm RSA -out privatekey.pem -pkeyopt rsa_keygen_bits:2048
openssl genpkey -algorithm RSA -out privatekey.pem -pkeyopt rsa_keygen_bits:2048 -aes256
Génére une paire de clés au format X.509 avec OpenSSL

openssl rsa -pubout -in privatekey.pem -out publickey.pem
Génére une clé publique à partir de la clé privée


openssl pkey -in privatekey.pem -check


openssl genrsa -out privatekey.pem 2048
openssl req -new -x509 -key privatekey.pem -out certificate.pem -days 365
Générer une paire de clés et un certificat auto-signé avec OpenSSL :

Country Name (2 letter code) [AU]: FR
State or Province Name (full name) [Some-State]: Ile-de-France
Locality Name (eg, city) []: Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Lockness
Organizational Unit Name (eg, section) []: IT Lockness
Common Name (e.g. server FQDN or YOUR name) []: www.lockness-informatique.fr
Email Address []: contact@qmail.fr


gpg --full-generate-key gpg --list-keys gpg --list-secret-keys gpg --export --armor "nom@example.com" > publickey.asc gpg --export --armor "contact@administralis.fr" > publickey.asc openssl rsa -pubin -inform PEM -in publickey.asc -outform PEM -out publickey.pem gpg --export-secret-keys --armor "contact@administralis.fr" > privatekey.asc gpg --export-secret-keys --armor "nom@example.com" > privatekey.asc gpg --export-secret-key --armor "nom@example.com" | \gpg --dearmor | openssl rsa -inform DER -outform PEM -out privatekey.pem openssl pkcs12 -export -out certificate.pfx -inkey privatekey.pem -in publickey.pem -certfile publickey.pem