Asustor Accès terminal SSH via clé publiques

Zouik

Apprenti
Bonsoir par ici,

Je vous propose petit tuto rapide pour se connecter directement sur le NAS grâce au couple clé publique/privée.
Il y a plusieurs intérêts selon moi:

  • Plus besoin de mot de passe pour se connecter (utile pour les accès à répétition)
  • + de sécurité avec la possibilité de désactiver l'authentification par mot de passe pour le compte admin,root, ou les 2.
  • Facilité pour des scripts de transferts de fichiers entre serveurs (par exemple)

Il y aura 3 étapes pour ce tuto:
  • Générer le couple de clés publique/privée directement depuis le NAS
  • Configurer le NAS
  • Configurer Putty pour se connecter sans mot de passe

C'est parti ! (Le tuto est fait sur un AS5002T)

1/ Générez les clés

Connectez vous en temps que root sur le NAS, et rentrer la commande suivant pour générer le couple de clé:

Code:
ssh-keygen -t rsa -b 2048
Les options: "-t" pour le type de clé (rsa/dsa/...), "-b" pour une clé 2048 bits :D

Plusieurs choses vous seront demandées:
- L'endroit où vous voulez sauvegarder les clés: laissez par défaut
- La passphrase: laissez vide
- Confirmation de la passphrase: vide encore une fois

Une fois ces validations effectuées, le couple de clé sera créé dans l'arborescence "/root/.ssh/" (cf. screen ci-dessous)

ssh01.jpg


2/ Configurer le NAS

Cette étape consiste à créer un fichier dans le répertoire utilisateur, et configurer le daemon SSH pour accepter la connexion par clé et optionnellement désactiver la connexion par mot de passe:

Rentrez tout d'abord cette commande:

Code:
mkdir .ssh && chmod 700 .ssh/ && touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
Encore une fois le détail: On affecte le droit en lecture/écriture/exécution au répertoire ".ssh/" pour l'utilisateur root, puis on créé un fichier vide "authorized_keys" dans ce répertoire avec les droits en lecture/écriture toujours pour l'utilisateur root. (résultat ci-dessous)

ssh02.jpg


Comme son nom l'indique dans le fichier "authorized_keys", on va renseigner les clés publiques qui seront autorisées à se connecter au NAS:

Pour se faire, on tape la commande suivant:

Code:
cat id_rsa.pub > authorized_keys

Cette commande, au lieu d'afficher le contenu du fichier id_rsa.pub (pub pour "publique" donc), va rediriger le flux vers le fichier précédemment créé "authorized_keys". Vous pouvez voir sur le screen ci-dessous que le fichier n'est plus vide, mais a une taille de 396 octets.

ssh03.jpg


Avant de passer à la configuration du daemon SSH, sauvegarder le contenu du fichier id_rsa (votre clé privée en fait) dans un éditeur type Notepad: elle vous servira pour la dernière étape du tuto, à savoir la configuration de Putty.

ssh04.jpg


Pour le fichier de configuration SSH, vous pouvez éditer le fichier "/usr/etc/ssh/sshd_config"'.

Je vous invite à vérifier/modifier les paramètres suivants:
  • PermitRootLogin without-password
  • StrictModes yes
  • RSAAuthentication yes
  • PubkeyAuthentication yes
  • AuthorizedKeysFile %h/.ssh/authorized_keys

La valeur "without-password" associé au paramètre "PermitRootLogin" permet à l'utilisateur root de se connecter au NAS uniquement grâce à sa clé publique, et non plus avec un simple mot de passe, terminé le bruteforce ;)

Vous pouvez complètement désactivé l'accès par mot de passe avec le paramètre suivant:
  • PasswordAuthentication no (yes par défaut)

:!: Je vous déconseille de désactiver tout de suite ce paramètre: si la configuration avec les clés ne fonctionnent pas au premier essai, et que cette option est à "no", vous n'aurez tout simplement plus accès à la console ! :!:

Une fois ce fichier sauvegardé, vous pouvez redémarrer le NAS relancer le process SSH pour que les changements soient pris en compte !
Code:
/etc/init.d/S41ssh stop && /etc/init.d/S41ssh start &


:?: Petit détail: en temps normal un "restart" du daemon est suffisant, mais le script de redémarrage présent sur le NAS de base ne relance jamais le daemon, et oblige dans tous les cas à redémarrer. Je n'ai pas encore eu le temps de m'y pencher, mais pour ceux que ça intéresse, le fichier est le suivant "/etc/init.d/S41ssh"

3 / Configuration du client Putty

Voilà le moment où on se sert de la clé RSA sauvegardée à l'étape 2. Commencez par ouvrir "Putty Key Generator" et cliquer sur "Load" pour charger la clé sauvegardée

ssh05.jpg


Mettez un petit commentaire qui va bien
ssh06com.jpg


Cliquez sur "Save Private Key" et validez quand vous avez le warning concernant la passphrase
ssh06.jpg


On peut maintenant configurer un profil dans Putty: rentrez l'adresse IP du NAS, choisir "SSH" en connection type, mettre un nom dans "Saved Sessions"
ssh07.jpg


Dans la catégorie "Connection -> Data" remplir le username avec "root"
ssh08.jpg


Dans la catégorie "Connection -> SSH -> Auth", parcourez votre ordinateur à la recherche de votre clé privée précédemment sauvegardée.
ssh09.jpg


Vous pouvez sauvegarder cette session Putty et cliquer sur "Open" et si tout s'est bien déroulé, vous devriez être logué grâce à votre couple de clé !
ssh10.jpg


4 / BONUS: Connexion avec Filezilla

Maintenant que vous savez vous connecter à votre NAS en SSH, il peut être intéressant de se connecter en SFTP avec un logiciel comme Filezilla par exemple. L'avantage c'est qu'il faut juste configurer le logiciel en question vu que vous avez déjà votre couple de clés.

Première chose à faire une fois Filezilla lancé:
Allez dans "Édition -> Paramètres", puis sur le bandeau latéral, cliquer sur "SFTP" et vous allez pouvoir y "Ajouter une clé privée" (oui, la même que celle des étapes précédentes)
filezilla1.jpg


Il ne reste plus qu'à créer un nouveau site dans "Fichier -> Gestionnaire de Sites..."
filezilla2.jpg


Voici les paramètres à renseigner:
Hôte: l'adresse IP de votre NAS
Port: 22
Protocole: SFTP - SSH File Transfer Protocol
Type d'authentification: Interactif
Identifiant: root

filezilla3.jpg


:!: Le mot de passe est grisé car vous allez utiliser votre clé privée pour vous connecter.

Il ne vous reste plus qu'à lancer la connexion et si tout se passe bien vous devriez avoir le message ci-dessous.
filezilla4.jpg


Si la clé utilisée n'est pas la bonne, un mot de passe vous sera demandé
filezilla5.jpg


Vous pouvez récupérer/modifier directement vos fichiers avec l'explorateur de Filezilla.
filezilla6.jpg



J'espère que ce tuto servira à d'autre, et si jamais vous avez des questions ou des doutes, n'hésitez pas ! :geek:
 

Zouik

Apprenti
Merci bien :oops:

J'ai créé un ticket au support pour le script qui ne fonctionne pas comme il faudrait, on va voir ce qu'ils en pensent. Ça serait tout de même plus pratique de pouvoir restarter le process SSH "à chaud" et pouvoir tester les modifications en direct.
 

Zouik

Apprenti
Hello,

Petit update du jour:
- J'ai eu un retour du support, apparemment le restart n'est pas bien géré dans le script, mais le stop/start fonctionne sans souci
- J'ai ajouté un petit bonus pour se connecter en SFTP avec Filezilla, pour ceux qui préfèrent avoir une interface graphique
 

Dami1

Représentant ASUSTOR
Zouik a dit:
Hello,

Petit update du jour:
- J'ai eu un retour du support, apparemment le restart n'est pas bien géré dans le script, mais le stop/start fonctionne sans souci
- J'ai ajouté un petit bonus pour se connecter en SFTP avec Filezilla, pour ceux qui préfèrent avoir une interface graphique

t es un chef toi.
bravo :!: :D
 

Trishul

Nouveau membre
Bonsoir,
Tout nouveau sur ce forum, et très satisfait de m'y être inscrit.
En effet depuis une semaine je tourne en rond à la recherche d'un tuto digne de ce nom, qui explique en détail à un "noob" comme moi comment configurer SSH.
Et voilà enfin qui est fait, grâce à Monsieur Zouik, que je remercie chaleureusement ;)
Bravo !
 

jonathanmf

Nouveau membre
Bonjour,

Depuis la mise à jour vers ADM 6 cela ne fonctionne plus chez moi? Vous aussi?

En tout cas super tuto merci à toi :)
 

Zouik

Apprenti
Bonjour,

Je viens de voir la mise à jour disponible, et je n'ai pas encore essayé.

Je teste ça ce soir et j'adapterais en fonction
 

Zouik

Apprenti
Bon après mise à jour, je n'ai aucun souci, je m'authentifie toujours via clé publiques. Tu dois avoir un loup quelque part :D
 

Matt

Chevalier Jedi
Super tuto, toujours fonctionnel sous ADM 3.0.

Par contre le
Code:
mkdir .ssh
n'est pas nécessaire après la génération de la clé ;)
 
Haut Bas