Comment générer des clés SFTP facilement

par Nathanael Wright | Mis à jour le : 09/12/2022 | Commentaires : 6

Mots clés :

Dataloggers Securité

Les thèmes principaux du Blog


Recherche sur le Blog


Langages du blog

English
Français (French)


Abonnez-vous au Blog

Recevez un courriel lorsqu'un nouvel article est posté. Choisissez les sujets qui vous intéressent le plus.


Entrez votre adresse courriel :



Suggérer un article

Y a-t-il un sujet que vous souhaiteriez nous voir aborder ? Laissez-nous un message.

Leave this field empty

CR1000X Measurement and Control Datalogger with secure lock

Comme les organisations à travers le monde continuent à renforcer leur réseau et leurs systèmes de communication de données pour contrer les menaces croissantes de sécurité, nous avons remarqué une tendance : il y a eu une augmentation du nombre de clients de Campbell Scientific mettant en place des communications sécurisées entre leurs centrales de mesure et d'autres dispositifs.

Le protocole de transfert de fichiers SSH (SFTP) est un protocole commun utilisé pour envoyer en toute sécurité des fichiers d'un appareil à un serveur. Ce protocole est pris en charge par nos centrales d'acquisition de données les plus récentes, notamment les séries CR1000X, CR6 et GRANITE. Le protocole SFTP est basé sur Secure Socket Shell (SSH) et nécessite donc que la centrale de mesure dispose d'une clé publique et d'une clé privée. La clé publique est partagée entre le serveur et l'enregistreur de données qui lui envoie des fichiers.

Si vous éprouvez des difficultés à générer les clés privées et publiques requises pour le protocole SFTP, vous n'êtes pas seul. Cet article présente une méthode simple pour générer vos propres clés à l'aide de l'outil open-source bien connu PuTTY Key Generator, puis d'appliquer ces clés à votre centrales de mesure compatible.

Commençons par le début :

Pour générer votre paire de clés publiques/privées pour SFTP sur un enregistreur de données Campbell Scientific, veuillez suivre les étapes ci-dessous :

  1. Installez le PuTTY Key Generator, naviguez jusqu'au répertoire PuTTYgen, et lancez-le. Le chemin du répertoire par défaut est C:\Program Files (x86)\PuTTY\puttygen.exe.

    Note : si vous disposez d'une paire de clés publiques/privées existante au format PPK, passez à l'étape 4. 

  2. Créez une nouvelle paire de clés publiques/privées en cliquant sur le bouton Generate :
     

    PuTTY Key Generator and Generate button

  3. Déplacez votre souris sur la zone vide pour créer un certain caractère aléatoire qui pourra être utilisé pour générer les clés :

    PuTTY Key Generator and randomness


    Note : Après avoir terminé l'étape 3, passez à l'étape 6.  

  4. Lorsque le générateur de clés PuTTY est ouvert, cliquez sur le bouton du menu Conversions et sélectionnez Import key 

    PuTTY Generator and Conversions | Import key

  5. L'écran Charger une clé privée s'affiche. Sélectionnez le fichier de clé au format .PPK et cliquez sur Open Voici un exemple :

    Key File

  6. Cliquez sur le menu Conversions, et sélectionnez Export OpenSSH key. Enregistrez ce fichier en tant que votre clé privée .PEM dans un endroit que vous pouvez facilement trouver :

    PuTTY Key Generator and Onversions | Export OpenSSH key

    Note : Un message d'avertissement de PuTTYgen apparaît, vous demandant si vous voulez enregistrer la clé sans phrase de passe pour la protéger. Cliquez sur Yes

    Si vous ouvrez le contenu de ce fichier clé dans un document texte, son en-tête et son pied de page doivent apparaître comme suit :
    -----BEGIN RSA PRIVATE KEY-----
    [key content here]
    -----END RSA PRIVATE KEY-----

  7. Maintenant que vous avez la clé privée, travaillons sur la clé publique. Copiez le texte de la clé publique. Ensuite, ouvrez Notepad ou Notepad++, collez le contenu dans le document texte et enregistrez le fichier .txt à un endroit où vous pourrez vous y référer si nécessaire. Votre serveur aura besoin de cette clé.

PuTTY Key Generator and Copy button

  1. Copiez le contenu de la clé publique et connectez-vous à votre enregistreur de données à l'aide de l'utilitaire de configuration des périphériques (DevConfig).

  2. Dans DevConfig, cliquez sur l'onglet Settings Editor, et sélectionnez le sous-onglet Advanced. Faites défiler jusqu'en bas et collez votre clé publique dans le champ Clé publique SFTP :

    DevConfig and Settings Editor | Advanced

  3. Cliquez sur le bouton More avec les trois points (...) pour rechercher le fichier .PEM de votre clé privée que vous avez enregistré précédemment. Cliquez ensuite sur le bouton  Apply :  

    DevConfig and More and Apply buttons

  4. Enfin, assurez-vous que votre serveur SFTP possède la même clé publique attachée ou partagée afin que vous puissiez vous connecter au serveur SFTP. Vos clés sont maintenant appliquées.

Un conseil pour les tests

Testez votre système en utilisant l'instruction FTPClient() dans votre enregistreur de données. Sachez que le traitement des données cryptées prend plus de temps qu'avec une instruction FTP directe. Pour éviter de sauter des scans, il est généralement préférable de contenir une transaction SFTP dans une SlowSequence vers la fin de votre programme d'enregistrement de données. Un exemple simple est ci-dessous :


SlowSequence
Scan (1,Hr,1,0)
	FTPClient ("10.0.0.1","FTPUserName","FTPPassword","USR:MyFile.dat","/MyFile.dat",20)
NextScan
EndSequence

Un dernier mot

J'espère que ces informations vous ont été utiles et que vous pourrez facilement générer vos clés SFTP pour sécuriser vos communications. Si vous avez des questions, veuillez les poster ci-dessous.


Partagez cet article



A propos de l'auteur

nathanael wright Nathanael Wright est ingénieur d'application chez Campbell Scientific, Inc. Il fournit un soutien technique pour les centrales d'acquisition de données, les instruments et l'équipement de communication. Nathanael est titulaire d'un baccalauréat en informatique et en administration des affaires et d'une maîtrise en administration des affaires. De plus, Nathanael a plus de 10 ans d'expérience dans le domaine des communications IP. En dehors du travail, il aime danser, faire de la randonnée, publier des livres et jouer avec l'équipement informatique.

Voir tous les articles de cet auteur.


Commentaires

Blakethelake | 01/26/2023 at 02:36 PM

Thanks Nathanael really helpful guide. Couple of questions related to it that I’m trying to understand. SFTP can support the use of SSH keys, password or both which variations are supported by campbell loggers? This information was not available as far as I could tell in the 1000x manual; FTPclient help; FTP guide or this blog. Apologies if I just couldn’t find it.

Second question, is support for SFTP coming to the CR350 which I though was more targeted at IP comms due to the option of the integrated cellular?    

Nathanael | 01/27/2023 at 12:18 AM

Campbell Loggers like the CR6 and CR1000X can support the the use of SSH keys, username/password, or both combined. For the moment it's not planned on the CR350 or any of the CR300 Series loggers. Does that answer your question?

burn0170 | 04/05/2023 at 07:45 PM

Nathanael - when we try to connect to our SFTP server, we get an error: "Unable to exchange encryption keys".  I can connect to the SFTP server just fine with WinSCP, any suggestions?

Nathanael | 04/05/2023 at 08:05 PM

Out of curiosity are you using Host Authentication or Public Key Authentication with your server?

Here is a list of the key requirements the datalogger can work with. Verify that your server will accept the dataloggers supported key exchange methods and cipher suites:

Key Size: Datalogger OS will accept up to a 4KB the SFTP public key and a 4KB private key file.

Key Exchange Methods: diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, diffie-hellman-group-exchange-sha1, diffie-hellman-group-exchange-sha256

Hostkey Types: ssh-rsa, ssh-dss

Supported Ciphers: aes256-ctr, aes192-ctr, aes128-ctr, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, arcfour128, none

Also, check the key fields in Dev Config and ensure that the entire key is currently entered in the field. Dev Config has a field length limitation for the keys and if you're running into that it will cut off the end of the key. I can help you address that limitation if that's what you're running into until we've fixed it in Dev Config.

MinhChauVu | 10/23/2023 at 06:48 PM

Hi Nathanael,

Do you have the similar imstruction to generate the Private key file and the Certificate File for the computer hosting the webpage?

Can we still use:

https://xxx.xxx.xxx.xxx/UNH/Index.html ?

Thanks,

Hung

Nathanael | 10/23/2023 at 08:58 PM

I just sent you a document via email that should help in answering your question. We’ll actually have this coming out in some public form soon.

Please log in or register to comment.