60 votes

Quel est le protocole le plus rapide, ssh ou git?

Ce qui est efficace? SSH:// ou Git:// (compression de Fichiers)

Je comprends dans Git , git protocole est intelligent parce qu'il y est un protocole de l'agent sur deux fin de commumnication pour compresser le fichier de transfert plus rapides clone par efficacement à l'aide de la bande passante du réseau.

À partir d'un O'Reilly livre que j'ai trouvé les instructions suivantes.

For secure, authenticated connections, the Git native 
protocol can be tunneled over an SSH connection using
the following URL templates:

ssh: ///[user@]example.com[:port]/path/to/repo.git
ssh: //[user@]example.com/path/to/repo.git
ssh: //[user@]example.com/~user2/path/to/repo.git
ssh: //[user@]example.com/~/path/to/repo.git*

Je ne sais pas si l'auteur fait ce qu'il dit. Il parle de protocole git arriver par tunnel SSH.

De mon point de vue, à moins que vous vous connectez à l'git port (agent de port), le protocole n'est pas en vigueur. Et SSH est simple non compressé de transfert de fichier.
Mais selon l'auteur, si l'on utilise SSH il dit que le protocole git est passé sur elle. Si SSH est plus intelligent dans GIT?

Von C, Merci pour votre réponse. "Les protocoles de réseau (HTTP et Git) sont généralement en lecture seule" Git peut être faite rw lorsque vous exécutez le démon avec l'option --enable=receive-pack.

Voici mes préoccupations. Quand ils disent protocole git est intelligent, ils veulent dire quand vous exécutez la commande git clone git server agent compresse les données qui est envoyé au client , de sorte que le clone devrait être plus rapide. Im mon cas d'utilisation, je vais mettre le serveur git à hong kong et en l'utilisant sur sanjose et d'autres pays ainsi , Si je veux être efficace sur le réseau en raison de la latence des préoccupations.

Donc ma question est quand j'utilise git clone ssh://user@server/reposloc puis-je obtenir les avantages de git protocole ont également . Comme par Orelly auteur du livre, il signifie git est un tunnel ssh, puis comment git protocole de travail quand je n'ai pas git daeomon en cours d'exécution sur le serveur.

Donc, en utilisant SSh://xyz... donne-t-il à la fois l'avantage de ssh et git protocoles ?

apprécier vos réponses à l'avance.

56voto

VonC Points 414372

Mise à jour 2010-2014:

Ssh et https sont équivalentes, Git 1.6.6+ (2010) et la mise en œuvre de smart protocole http:

smart http

Vous pouvez maintenant utiliser ssh ou https pour l'accès en lecture/écriture à votre repos.
Vous pouvez également détecter si votre serveur distant prend en charge smart http.
Ajouter le droit de la variable d'environnement si vous devez utiliser un proxy.


Origine de la réponse (juillet 2010):

À partir de la Pro Git Livre:

Probablement le plus commun de protocole de transport pour Git est SSH.
C'est parce que SSH d'accès à des serveurs est déjà mis en place dans la plupart des lieux - et si elle ne l'est pas, c'est facile à faire.

SSH est également le seul réseau basé sur le protocole que vous pouvez facilement lire et d'écrire. Les deux autres protocoles de réseau (HTTP et Git) sont généralement en lecture seule, donc, même si vous en avez de disponible pour les masses incultes, vous avez encore besoin de SSH pour votre propre écriture.

SSH est un réseau authentifié protocole; et parce qu'il est omniprésent, il est généralement facile à configurer et à utiliser.

Il n'est donc pas plus "intelligents" que le protocole Git, juste un protocole complémentaire pour certaines fonctions ne sont pas traitées par le protocole Git.

L'inconvénient du protocole Git est le manque d'authentification. Il n'est généralement pas souhaitable que le protocole Git être le seul moyen d'accès à votre projet.
En général, vous aurez le coupler avec un accès SSH pour les quelques développeurs qui ont pousser (écriture) d'accès et de tout le monde utiliser git:// pour l'accès en lecture seule

Il exige également l'accès au pare-feu de port 9418, ce qui n'est pas un standard de port du pare-feu toujours autoriser. Derrière de gros pare-feu d'entreprise, cet obscur port est souvent bloqué.

(c'est pourquoi dans ma boutique, j'ai besoin d'utiliser ssh+git et pas seulement git, même pour l'accès en lecture: 9418 est bloqué...)

41voto

erjiang Points 14724

Jetez un coup d'œil à la deuxième partie de cette page

Le seul protocole "bête" est le protocole HTTP simple, qui ne nécessite aucun effort particulier sur le serveur. Dans les protocoles git: // et ssh: //, un processus git upload-pack (qui n'est pas un démon) est créé sur le serveur qui communique avec le client qui exécute git fetch-pack . Dans ssh: // et git: //, vous obtenez une communication "intelligente".

4voto

Jarrod Roberson Points 32263

Lorsque vous accédez à git via ssh il vient de tunnels le protocole git via ssh, façon plus facile et plus sûr, c'est le moyen privilégié pour accéder à distance à des référentiels.

C'est en fait plus "intelligents" que le strict protocole git, car il peut appliquer l'authentification de l'utilisateur via ssh mécanismes. git n'tous les compresser et ce n'est pas sur le client, indépendamment de la couche de transport, et il décompresse sur le serveur.

Le "git", le serveur ne fait pas cela, tout ce qui se passe lors de l'utilisation de ssh en tant que bien. le serveur git doit être évitée si vous voulez être en mesure d'écrire sur le dépôt distant. si vous souhaitez un accès en lecture seule git ou HTTP transports sont "OK", mais si vous avez des développeurs qui ont besoin d'écrire à la respository vous devriez utiliser ssh. La configuration de tunnels pour le serveur git est juste en ajoutant à la complexité et à la configuration qui sera fragile et vous gagnez rien.

1voto

David L.-Pratte Points 893

De Wikipedia:

Pour configurer un tunnel SSH, on configure un client SSH pour transférer un port local spécifié à un port sur la machine distante. Une fois le tunnel SSH a été créé, l'utilisateur peut se connecter au port local spécifié à l'accès au réseau. Le port local n'a pas besoin d' ont le même numéro de port que le port distant.

Si vous avez besoin d'un certain type de représentation ASCII art:

Git Data ---> [SSH encrypts data] ----- Internet -----> [SSH decrypts data] ----> Git Data

1voto

Philip Oakley Points 3825

Les différents protocoles se situant à différents niveaux (par exemple, le modèle de couche ISO 7), vous pouvez donc disposer des deux, tout comme vous pourriez être connecté par fil ou sans fil, ou par fibre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X