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 a
Cô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
.ssh
sur le serveur (si nécessaire) :
mkdir -p ~/.ssh
- Chemin des clés sur le serveur
cd /home/nomUtilisateur
- Éditer le fichier
authorized_keys
sur le serveur :
nano ~/.ssh/authorized_keys
Ajouter la clé publique de l'hôte local dans le fichier
authorized_keys
sur 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és
Sé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 password
Commande à 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.