Acces sftp de webapp1 avec cles publique/privée

Bonjour,

Je suis nouveau dans le monde de l’auto-hebergement et yunohost. J’installe petit a petit les différentes applications qui m’intéressent.

Pour ce qui concerne la Custom Webbapp je voulais pouvoir me connecter exclusivement avec cles publique/privée, du coup j’ai :

  • Créé un dossier .ssh dans /var/www/my_webapp
  • Copié le fichier authorized_keys de mon admin dedans
  • Changé le propriétaire et groupe du fichier authorized_keys en webapp1:www-data

Tout cela fonctionne bien et j’ai pu garder “PasswordAuthentication no” dans mon fichier sshd_config.

Mais je me demandais si pour une raison ou une autre cette configuration etait deconseillée ? Problème de sécurité ou autre ?

Merci d’avance pour vos retours !

Bonjour,
Je suis un peu dans le même cas, la réussite en moins :slight_smile:
En ce qui concerne la méthode, c’est ce que j’ai vu qui était préconisé, notamment du côté de Bitbucket Pipelines.
C’est justement avec cet outil que j’essaie de mettre en place la mise à jour de ma custom_webapp. J’ai suivi les instructions que tu as données ci-dessus, et ai saisi la commande suivante:
sftp -b sftp_commands -F sshd_config -P $PORT $FTP_USERNAME@$HOST
mais j’obtiens le message
Host key verification failed.
Une idée de ce que je peux effectuer comme manip’ pour vérifier puis corriger le problème ?
Merci.

Salut,
Pour être sûr de comprendre,
Le but est de se connecter à son serveur en ligne de commande?

Si oui (et si tu es sous linux) :
Pour que cela fonctionne la première étape est de créer une clé ssh localement;
Puis d’envoyer la partie publique de cette clé sur le serveur.
Normalement il n’y a pas besoin de bidouiller d’avantage.
Générer une clé : ssh-keygen -t rsa -b 4096 (localement)
L’envoyer: ssh-copy-id -i ~/.ssh/id_rsa.pub utilisateur@ip_machine

J’avais fait un papier sur mon blog https://carmagnole.ovh/tuto-securise-son-acces-ssh.htm
Il est aussi possible de monter par sftp un volume sur son pc au démarrage (c’est le sshfs).

Et n’hésite pas si tu as des questions.

Oui, et sans interaction humaine ; le but est de faire du déploiement continu (je commit une modif sur mon repo git bitbucket, et par script et une commande sftp la webapp est mise à jour automatiquement).

Tu veux mettre à jour webapp avec des commit? Ou synchroniser les modifications de fichiers réalisé sur bitbucket sur ton serveur sftp?
Autre chose: tu n’a pas besoin de webapp pour te connecter aux serveur sftp (sftp se base sur ssh).

Je veux synchroniser les fichiers de ma webapp à partir de ceux mis à jour sur bitbucket.

Ok je comprends mieux:
Du coup as-tu réussi l’échange de clé?
Parce que à ce que je comprends, si tu veux que bitbucket synchronise lui même, il faut lui donner la clé privé;
Et donc un accès ssh…

Ou alors il est possible tout simplement de mettre une dans le crontab de ton install yunohost qui télécharge régulièrement tes commits (j’imagine que c’est possible avec bitbocket).

Une synchro toutes les heures:
crontab -e
0**** git clone git@bitbucket:monDossier repertoire

Je ne dois pas être bien loin ; j’arrive à me connecter en sftp avec le compte root (je sais, c’est moche).
J’ai tenté de recopier le fichier authorized_keys de root vers celui de mon user de webapp, mais ça n’a pas l’air de suffire / fonctionner.

Dans la conf de bitbucket, il y a effectivement une clé privée ; j’ai répercuté la clé publique dans le fichier authorized_keys…

Et non, l’idée du déploiement continu est bien d’avoir un site à jour après chaque commit (sur branche master, par exemple).

Edit: c’est tout bon, ça fonctionne. J’ai recréé une custom_webapp, ai ajouté la clé ssh générée par bitbucket dans le fichier ~/.ssh/authorized_keys et changé les propriétaire et groupe dudit fichier ; bref, les manips évoquées par @argan.