View Ticket
Not logged in
Ticket UUID: 884c40589fcee6fa54d18eb3e8db1d1ba337a294
Title: ssh clone fails from Ubuntu 10.10
Status: Open Type: Code_Defect
Severity: Important Priority:
Subsystem: Resolution: Open
Last Modified: 2011-02-02 01:00:34
Version Found In: 20b2767f46a79e845c319bd7aadec34d84ff9bca
Description & Comments:
This issue seems different from [115e95ac11631d0f3f2cf2427f1a7212999b079e]

If I use fossil clone it seems I get the MOTD. This could be related to the sshd config

mjanssen@Juno:~/Projects$ fossil clone ssh://mjanssen@localhost/home/mjanssen/Repos/tcltk.fsl test.fsl
Enter passphrase for key '/home/mjanssen/.ssh/id_rsa':
fossil: ssh connection failed: [Linux Juno 2.6.35.8-bfs #1 SMP Wed Jan 19 17:16:18 CET 2011 i686 GNU/Linux
Ubuntu 10.10

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/

4 packages can be updated.
0 updates are secur]

mjanssen added on 2011-02-01 08:14:39 UTC:
It seems the echo of test is not displayed on first read from the ssh pipe. Applying the following patch makes ssh clone work (buffer zIn is enlarged for big MOTDs):

mjanssen@Juno:~/Projects/fossil$ fossil diff src/http_transport.c
--- src/http_transport.c
+++ src/http_transport.c
@@ -109,11 +109,11 @@
     ** and run an SSH command to talk to the remote machine.
     */
     const char *zSsh;  /* The base SSH command */
     Blob zCmd;         /* The SSH command */
     char *zHost;       /* The host name to contact */
-    char zIn[200];     /* An input line received back from remote */
+    char zIn[32000];     /* An input line received back from remote */

zSsh = db_get("ssh-command", zDefaultSshCmd); blob_init(&zCmd, zSsh, -1); if( g.urlPort!=g.urlDfltPort ){ #ifdef __MINGW32__ @@ -152,10 +152,12 @@ popen2(blob_str(&zCmd), &sshIn, &sshOut, &sshPid); if( sshPid==0 ){ fossil_fatal("cannot start ssh tunnel using [%b]", &zCmd); } blob_reset(&zCmd); + /* eat preamble on login */ + sshin_read(zIn, sizeof(zIn));
/* Send an "echo" command to the other side to make sure that the ** connection is up and working. */ fprintf(sshOut, "echo test\n");

mjanssen added on 2011-02-01 08:36:39 UTC:
Fix also works from windows using plink.exe with an MinGW fossil build


mjanssen added on 2011-02-02 01:00:34 UTC:
After closer reading: [115e95ac11631d0f3f2cf2427f1a7212999b079e] does seem very similar.