Par défaut, les instances GCP privilégient l’authentification par clé SSH pour de bonnes raisons de sécurité. Pourtant, certains cas d’usage, par exemple fournir un accès SFTP à un collaborateur via FileZilla nécessitent l’activation de l’authentification par mot de passe et la création d’un compte utilisateur classique. Ce guide explique, étape par étape, comment réaliser cela en toute sécurité sur une VM Linux (ex : Ubuntu) hébergée sur GCP.
Configurer un accès SFTP & SSH sur une VM Google Cloud (GCP)
Prérequis
- Accès au projet Google Cloud et permissions pour utiliser
gcloud. - Une VM Linux (par ex. Ubuntu) avec accès via IP publique ou Cloud IAP.
- Client SFTP (FileZilla) pour tester la connexion.
- Accès sudo sur la VM (ou l’aide d’un administrateur si nécessaire).
Étapes pas à pas
1. Se connecter à la VM
Ouvrez votre terminal local et connectez-vous à l’instance GCP avec :
gcloud compute ssh your-vm-name --zone=your-vm-zone
Remplacez your-vm-name et your-vm-zone par les valeurs de votre instance.
2. Créer un nouvel utilisateur
Sur la VM, ajoutez un utilisateur et définissez un mot de passe :
sudo adduser newusername
Saisissez le mot de passe lorsque demandé et conservez-le pour la connexion SFTP.
3. Activer l’authentification par mot de passe (si nécessaire)
Éditez la configuration SSH principale :
sudo nano /etc/ssh/sshd_config
Assurez-vous que ces lignes sont présentes et ne sont pas commentées :
PasswordAuthentication yes
PermitRootLogin no
Si votre image GCP utilise les fichiers /etc/ssh/sshd_config.d/ (souvent sur les images Ubuntu cloud), ces réglages peuvent être surchargés. Passez à l’étape 4. Dans le cas contraire, redémarrez simplement le service SSH (voir juste après l’étape 4).
4. Vérifier et modifier les fichiers cloud-init (Ubuntu GCP)
Les images cloud peuvent inclure des fichiers comme 60-cloudimg-settings.conf ou 50-cloudimg-settings.conf qui contiennent PasswordAuthentication no. Il faut les commenter.
sudo nano /etc/ssh/sshd_config.d/60-cloudimg-settings.conf
# (si présent) commenter la ligne :
# PasswordAuthentication no
sudo nano /etc/ssh/sshd_config.d/50-cloudimg-settings.conf
# (si présent) commenter la ligne :
# PasswordAuthentication no
Après modification, redémarrez le service SSH :
sudo systemctl restart ssh
5. Tester la connexion SFTP (FileZilla)
Ouvrez FileZilla et connectez-vous avec :
- Hôte : adresse IP publique de la VM
- Protocole : SFTP
- Utilisateur :
newusername - Mot de passe : le mot de passe défini
Si la connexion échoue, vérifiez :
- Le port SSH (22) est bien ouvert dans le pare-feu GCP (règles de firewall).
- Le service SSH est actif sur la VM (
sudo systemctl status ssh). - Les fichiers de configuration ne contiennent pas d’autres directives qui interdissent l’accès.
6. (Optionnel) Donner les droits sudo
Pour ajouter l’utilisateur au groupe sudo :
sudo usermod -aG sudo newusername
Testez avec :
su - newusername
sudo whoami
# doit renvoyer : root
FAQ
- Est-ce sécurisé d’activer PasswordAuthentication ?
Moins sûr que l’usage exclusif de clés SSH publiques. Si vous activez les mots de passe, utilisez des mots de passe forts, limitez l’accès par IP si possible, et surveillez les logs SSH.
- Peut-on restreindre l’accès SFTP à un seul dossier ?
Oui — utilisez
ChrootDirectoryet configurez l’utilisateur dans un groupe SFTP dédié (configuration avancée SSH).
- Que faire si Cloud IAP est utilisé ?
Si vous passez par Cloud IAP, l’accès SSH se fait différemment ; vérifiez la documentation GCP et adaptez les règles de firewall et IAM en conséquence.
Conclusion
Ce guide fournit les étapes essentielles pour créer un utilisateur, autoriser l’authentification par mot de passe (si nécessaire), vérifier et modifier les fichiers cloud-init qui pourraient surcharger la configuration SSH, et tester l’accès SFTP via FileZilla. Pour la production, privilégiez les clés SSH, restreignez les accès et surveillez les connexions.