Accès distant à un VPS avec SSH

Détails protocole SSH

Se connecter au VPS avec les identifiants provisoires (chez OVH, utilisateur debian et mot de passe provisoire envoyé par mail pour la première connexion)
Changer d’utilisateur : passer en root : su root
(si pas de mot de passe root fourni, le générer avec la commande sudo passwd root)
Faire les mises à jour : sudo apt update sudo apt upgrade
Créer un nouvel utilisateur standard : sudo adduser newuser
Redémarrer : sudo reboot
Se reconnecter en SSH au VPS avec l’utilisateur nouvellement crée :
ssh newuser@IP_VPS
Repasser en root et supprimer l’utilisateur provisoir debian : sudo userdel debian
Eventuellement, renommer la machine : sudo nano /etc/hostname et mettre un nouveau nom
(dans ce cas faire également la modification dans le fichier /etc/hosts)
Se connecter au VPS uniquement en utilisateur standard, JAMAIS EN ROOT !

Paramétrage serveur SSH : OVH – Sécuriser un VPS
Dans le fichier /etc/ssh/sshd_config :
Ne pas autoriser la connexion en root : PermitRootLogin no
Modifier le port par defaut (22) : entre 1024 et 65535
Remarque : Il faut s’assurer que le port sélectionné n’est pas utilisé pour d’autres services. On peut le faire en utilisant la liste de ports suivante fournie par l’Internet Assigned Numbers Authority (IANA) : https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml
On peut également voir la liste des ports utilisés dans le fichier /etc/services : cat /etc/services
Ajouter la ligne AllowUsers mickey donald : seuls les utilisateurs mickey et donald sont autorisés à se connecter en SSH

Redemarrer le service SSH pour prendre en considèration les changements :
sudo systemctl restart sshd
Dorénavant pour se connecter au VPS : ssh newuser@IP_VPS -p n°port

Pour voir les logs de tentatives de connexion au VPS:
journalctl -u ssh ou (selon l’OS) journalctl -u sshd

  • -u : paramètre qui filtre le champ global _SYSTEMD_UNIT (on indique le nom du service utilisé à sa suite)
  • -e : voir les derniers logs
  • -f : voir les logs en temps réel
  • -n 100 : affiche un nombre fixe de lignes

On peut afficher les logs avec tous les champs dans un format json : journalctl -u ssh -o json-pretty