2010-12-01 7 views
3

J'essaie de créer une application qui va cloner le dépôt GIT à l'ordinateur. Ma question est comment cloner le dépôt sécurisé si les clés SSH ne sont pas à l'emplacement par défaut.Comment cloner le dépôt GIT avec la clé privée

Je souhaite autoriser les utilisateurs à télécharger des clés, puis à les utiliser pour connecter et cloner le référentiel. Donc pour conclure: Je ne veux pas que GIT cherche la clé sur les emplacements par défaut, je veux lui donner le chemin du fichier clé, puis le mettre en commande (avec la phrase secrète s'il y en a) en quelque sorte et obtenir référentiel cloné.

Merci beaucoup d'avance!

+1

"télécharger des clés" - êtes-vous sérieux? Parlez-vous d'encourager les utilisateurs à télécharger leur clé privée? Les utilisateurs qui font cela ne savent évidemment pas ce qu'ils font car ils devraient garder leur clé privée privée! La publier à qui que ce soit, la transmettre, met en péril la sécurité de l'authentification et annule à peu près toute mesure de sécurité. Je ne sais pas ce que vous essayez de faire, mais êtes-vous sûr que c'est la voie à suivre? – Kissaki

+1

Dans les commentaires de réponse ci-dessous vous parlez de réaliser cela en PHP, mais vous n'avez pas mentionné PHP dans la question. Pourriez-vous préciser/élaborer cela? Aussi, est-ce un script PHP exécuté localement, comme vous essayez de le faire pour cloner un repo à l'ordinateur (local?) !? – Kissaki

Répondre

4

Ce n'est pas git qui regarde, c'est SSH. Vous devez spécifier les clés dans le fichier .ssh/authorized_keys, c'est-à-dire la clé publique btw. La clé privée sera stockée sur la machine de l'utilisateur.

+0

Merci beaucoup pour votre réponse. J'ai vu que SmartGit (application OS X) utilise son propre client SSH pour se connecter avec des dépôts. Comment puis-je créer mon propre client SSH (p.s. c'est une application PHP)? – Goran

+0

@Goran Les clés publiques sont vérifiées par le serveur SSH. Vous pouvez construire sur un client SSH existant: http://en.wikipedia.org/wiki/Comparison_of_SSH_clients –

+0

J'ai peur que vous ne m'avez pas compris. Dans l'application SmartGit, tout ce que vous devez faire est de choisir une clé privée et de taper le mot de passe, et il se connecte automatiquement au dépôt git. C'est exactement ce que je veux coder mais dans l'application web PHP ... Pourriez-vous s'il vous plaît m'aider avec ça? – Goran

Questions connexes