git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] GIT_SSH alternate ssh name or helper

From
MSMartin Sivak <mars@nomi.cz>
Date
Aug 3, 2005, 15:15 UTC
Message-ID
<20050803151542.GA6655@medusa>

This patch make possible to use alternate ssh binary or ssh helper script. The script can be used to give additional parameters to ssh binary (like private key, protocol version, ...).

Example script could look like this:

#!/bin/sh ssh -1 -i myprivatekey.key "$@"

The patch itself is realy very simple:

diff -uNr git-current/connect.c git-current-mars@nomi.cz/connect.c --- git-current/connect.c 2005-08-03 15:00:04.000000000 +0200 +++ git-current-mars@nomi.cz/connect.c 2005-08-03 16:32:36.000000000 +0200

@@ -166,6 +166,9 @@
   int pipefd[2][2];
   pid_t pid;
   enum protocol protocol;
+  char *sshprog;
+
+  sshprog = getenv("GIT_SSH") ? : "ssh";

   host = NULL;
   path = url;
@@ -205,7 +208,7 @@
      close(pipefd[1][0]);
      close(pipefd[1][1]);
      if (protocol == PROTO_SSH)
-        execlp("ssh", "ssh", host, command, NULL);
+        execlp(sshprog, "ssh", host, command, NULL);
      else
         execlp("sh", "sh", "-c", command, NULL);
      die("exec failed");
diff -uNr git-current/rsh.c git-current-mars@nomi.cz/rsh.c
--- git-current/rsh.c   2005-08-03 15:00:04.000000000 +0200
+++ git-current-mars@nomi.cz/rsh.c  2005-08-03 16:26:39.000000000 +0200
@@ -17,6 +17,7 @@
   char command[COMMAND_SIZE];
   char *posn;
   int i;
+  char *prog; 

   if (!strcmp(url, "-")) {
      *fd_in = 0;
@@ -24,6 +25,8 @@
      return 0;
   }

+  prog = getenv("GIT_SSH") ? : "ssh";
+  
   host = strstr(url, "//");
   if (host) {
      host += 2;
@@ -59,7 +62,7 @@
      close(sv[1]);
      dup2(sv[0], 0);
      dup2(sv[0], 1);
-     execlp("ssh", "ssh", host, command, NULL);
+     execlp(prog, "ssh", host, command, NULL);
   }
   close(sv[0]);
   *fd_in = sv[1];


Signed-off-by: Martin Sivak <mars@nomi.cz>
-- 
Martin Sivak
mars@nomi.cz
Next: Junio C Hamano
Message 1 of 4 in “GIT_SSH alternate ssh name or helper”
  1. GIT_SSH alternate ssh name or helperMartin Sivak, Aug 3, 2005
  2. Junio C HamanoAug 3, 2005
  3. Martin SivakAug 3, 2005
  4. Junio C HamanoAug 3, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.