5 votes

Git et SFTP - Comment les séparer ?

Nous avons un serveur de développement local avec Ubuntu 14.04. Nous utilisons SFTP avec vsftp, et Git.

Certains collègues ont un accès par SFTP (sans accès ssh), /usr/bin/nologin et groupe sftponly), et d'autres collègues ont accès à l'hôte Git (nom d'utilisateur différent, Shell comme /usr/bin/git-shell ).

Je veux créer l'environnement suivant : Un accès SFTP pour le développeur web frontal (collaborateurs externes) et un accès Git (via ssh://) pour notre développeur back-end (collaborateurs internes ou externes).

L'utilisateur SFTP est chrooté, et cela fonctionne parfaitement.

Le problème est avec Git - si les utilisateurs ont accès via ssh:// au dépôt git, ils ont en même temps accès à tous les répertoires du système via SFTP.

Comment utiliser SFTP et Git dans le même système sans accès SFTP pour les utilisateurs de Git ?

PS. J'ai lu presque tous les résultats de Google, mais les solutions ne fonctionnent pas ou sont si vieilles ou conseillent de désactiver SFTP.

1voto

thejonwithnoh Points 111

Poste mis à jour :

En utilisant les éléments suivants ForceCommand en sshd_config pour votre utilisateur (par ailleurs normal) devrait fonctionner :

ForceCommand /usr/bin/git-shell -c "$SSH_ORIGINAL_COMMAND"

Cette petite commande magique se trouvait à l'origine aquí . Notez que le Shell de l'utilisateur doit être un Shell normal et complet pour que cela fonctionne correctement.

Raison de l'édition :

Je viens de réaliser que ma réponse initiale n'a pas vraiment fonctionné pour moi ( tellement embarrassant ). Bien sûr, cela désactive SFTP, mais cela semble également empêcher git de fonctionner correctement !

Poste original :

Essayez d'utiliser une ForceCommand, et utilisez également le git-Shell pour la commande. ForceCommand désactive sftp à moins qu'il ne soit défini sur internal-sftp. - muru

J'ai juste décidé de citer de Muru commentaire afin que d'autres puissent en bénéficier. Cela fonctionne comme un charme.

J'avais exactement le même problème, et j'ai failli manquer cette perle puisqu'elle était dans les commentaires au lieu d'être postée comme une réponse.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X