Connexion ssh

vps, linux, ssh

SSH “la base!”

Comment se connecter à distance sur un VPS et avec quel tunnel de sécurité.

SSH est un outil qui sert à se connecter sur un terminal à distance, mais pas que. C’est le moyen le plus utilisé pour se logger sur une machine dans un tunnel chiffré. Avant toute choses il nous faut une clé ssh. Sur tout environnement Unix une simple commande suffi.

ssh-keygen
ssh-keygen -t ed25519

Il vous sera demandé une passphrase. Choisissez en une assez complexe et notez là dans l’endroit sécuriser de votre choix de type lestspass ou keepassx. Deux fichiers seront créées, une clé publique

/home/user/.ssh/id_ed25519.pub

à partager sur les instances de votre choix, et une clé privé

/home/user/.ssh/id_ed25519

qui elle, ne dois jamais être partagé et que vous devez même sauvegarder sur une clé usb puis l’enterrer au fond jardin ou que sais je.

Vérifier les permissions du répertoire /home/user/.ssh/

ls -l .ssh/
#-rw-r--r-- 1 root root 95 Mars 10 15:43 authorized_keys
chmod -R 700 .ssh
#-rw------- 1 root root 95 Mars 10 15:43 authorized_keys
ls -l .ssh/

On peut d’ores et déjà copier cette clé sur le VPS, mais on le fera que par la suite, quand nous aurons créée un utilisateur non root ex dans ce post on crée un utilisateur au nom de nemo !

La première connexion ssh officiel à votre VPS.

ssh root@ip-du-vps

On va changer le mot de passe root passwd root
crée un utilisateur exemple adduser nemo
nous devons quitter la session ssh
exit

De retour sur notre environnement local

Nous allons envoyer notre clé publique sur le serveur VPS dans le répertoire home de nemo avec la commande suivante.

ssh-copy-id -i /home/user/.ssh/id_ed25519.pub "-p 22 nemo@IP-VPS"

entrer le mot de passe de l’utilisateur nemo et voilà

Noté que ssh utilise par défaut le port 22, nous allons changer cela pour plus de sécurité et passer par une authentification par clé. Reconnectons nous en ssh avec notre nouvel utilisateur.

ssh nemo@ip-du-vps

rentré le mot de passe de nemo… pas encore la passphrase!

cat ~/.ssh/authorized_keys

verifier que votre clé est bien là

édition de la configuration du serveur ssh

Pour éditer la configuration général du serveur, nous devons être root.
su -

rentré votre mot de passe root

nano /etc/ssh/sshd_config

# What ports, IPs and protocols we listen for
Port 8899
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
UsePAM no

Ceci n’est qu’un exemple des variables à changer et non pas le document complet
Ctrl+x pour quiter et Y pour sauvegarder.

Si on rentre la commande.

netstat -tupln
#tcp        0      0 0.0.0.0:22            0.0.0.0:*               LISTEN      15182/sshd
#tcp6       0      0 :::22                 :::*                    LISTEN      15182/sshd

On voit que port ouvert pour ssh est encore le port 22
redémarrer le serveur ssh.
/etc/init.d/ssh restart
netstat -tupln
le port affiché doit être le port choisi ici 8899!

Ouvrir un nouveau terminal pour bien vérifier que l’on peut se logger avec l’utilisateur nemo en ssh avec la clé ed25519.

ssh nemo@ip-du-vps -p 8899
Enter passphrase for key '/home/user/.ssh/id_ed25519':
Last login: Wed May 4 13:37:00 2017 from gg94-7-42-4242-000-42.hey.whassssssup.net

Vérifions d’une autre manière notre connexion ssh

lsof -i :8899
#COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
#sshd    11514 nemo    3u  IPv4 653092      0t0  TCP 144.ip-du-vps:8899->aaa-votre-ip.gg94-7-42-4242-000-42.hey.whassssssup.net:12345 (ESTABLISHED)

Okay, la configuration a bien marché, vous pouvez vous délogger sans être mis à la porte de votre propre serveur. Notez bien que l’utilisateur root ne plut plus se logger directement (pour des raisons de sécurité). Passé soit par su - ou sudo voir sudo -i pour devenir root sur la machine.

PRO TIPS

si l’authentification par clé est actif et que l’on veux copier une clé ssh toujours avec un port différent que celui par defaut le port:22

ssh "-p 8899 newuser@ip-du-vps" "echo $(cat ~/.ssh/id_rsa.pub) >> .ssh/authorized_keys"
# ou!!!
cat ~/.ssh/id_ed25519.pub | ssh -p 8899 newuser@ip-du-vps "cat - >> ~/.ssh/authorized_keys"

faire un copier coller entre local et vps. Attention préferer l’envoie de fichier ou répertoir compresser!

#LOCAL SUR LE VPS
scp -P 8899 fichier.txt newuser@ip-du-vps:/home/newuser/tampon

#DU VPS SUR UN PC LOCAL
scp -P 8899 newuser@ip-du-vps:/home/newuser/chamber/urls.txt ./mon_repertoire/(mon.txt)
Share
48.844965; 2.4358856
vps, linux, ssh

© 2017 Jekyll hack mostly crafted on my couch while having a nice cup of tea