Commandes récapitulatives pour créer une clée ssh local et la déclarer sur le serveur
Objectif autoriser un hôte à se connecter au serveur en SSH
Utilisé pour autoriser Vs-Code à se connecter à code-serveur en ssh via l'extension VsCode Remote-SSH (Microsoft)
Côté serveur
- Vérifier si OpenSSH est instalé sur le serveur :
ssh -V- Si nécessaire, installer OpenSSH sur le serveur :
sudo apt update && sudo apt install -y openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh- Vérifier si OpenSSh est bien actif
sudo systemctl status ssh- Vérifier si le port 22 est ouvert :
sudo ufw allow 22
sudo ufw enable
sudo ufw status- Restreindre l'accès SSH à une ou plusieurs IP :
sudo ufw allow from UNE_IP_PUBLIQUE_AUTORISEE to any port 22
sudo ufw status- Si on veut désactiver l'accès SSH par mot de passe :
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin no
sudo systemctl restart ssh- Si on veut changer le port SSH
sudo nano /etc/ssh/sshd_config
Port 2222
sudo systemctl restart ssh- Ouvrir le port 2222 dans le firewall
sudo ufw allow 2222
sudo systemctl restart ssh- Trouver l'Ip du serveur :
ip aCôté hôte local
- Vérifier si une clé SSH existe sur l'hôte local :
ls -l ~/.ssh/- Créer la clé SSH sur l'hôte local si nécessaire :
ssh-keygen -t rsa -b 4096 -C "email@example.com"- Afficher la clé publique :
cat ~/.ssh/id_rsa.pub- Vérifier la présence du repertoire .ssh pour l'utilisateur
cd /home/nomUtilisateur/.ssh- Créer le répertoire
.sshsur le serveur (si nécessaire) :
mkdir -p ~/.ssh- Chemin des clés sur le serveur
cd /home/nomUtilisateur- Éditer le fichier
authorized_keyssur le serveur :
nano ~/.ssh/authorized_keysAjouter la clé publique de l'hôte local dans le fichier
authorized_keyssur le serveur :copier la clé publique de l'hôte local (cmd : cat ~/.ssh/id_rsa.pub) et la coller dans le fichier authorized_keys àla suite des autres clésSécuriser les permissions des fichiers et répertoires SSH sur le serveur :
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys- Tester la connexion SSH :
ssh nomUtilisateur@serveur_ip-Si on veut se connecter à code-serveur depuis le navigateurvscode.simschab.cloud
Si on ne sait plus quel mot de passe utiliser quand le navigateur demande le mot de passe pour se connecter à code-server
cat ~/.config/code-server/config.yaml | grep passwordCommande à passer sur le serveur bien sur et pas sur l'hôte local. Le mot de passe est généré automatiquement à l'installation de code-server et est stocké dans le fichier de configuration de code-server. On le trouve avec la commande ci-dessus et on le copie pour le coller dans le navigateur.