Subject: Re: bug#19702: 25.0.50; Tramp with ssh not working with openssh 6.7 while worked with 6.6

From: Filipp Gunbin <[email-masked]>
Date: Tue, 27 Jan 2015 20:45:39 +0300

Michael,

On 27/01/2015 17:06 +0100, Michael Albinus wrote:

> Filipp Gunbin <[email-masked]> writes:
>
> Hi Filipp,
>
>> I've recently upgraded openssh to 6.7 on MacOS X (from MacPorts) and ssh
>> in Tramp stopped working.  Logs are below.  Activating openssh 6.6
>> brings back the working state.
>>
>> Tramp log buffer:
>>
>> 17:34:12.318598 tramp-send-command (6) # exec ssh -l root -o
>> ControlPath=/var/folders/yb/0cdss5q52d1848_2th2kp_740000gn/T/tramp.587ZOm.%r@%h:%p
>> -o ControlMaster=auto -o ControlPersist=no -e none <myhost>
>> 17:34:15.933185 tramp-process-actions (6) # 
>> root@<myhost>'s password: 
>> unix_listener:
>> "/var/folders/yb/0cdss5q52d1848_2th2kp_740000gn/T/tramp.587ZOm.root@<myhost>:22.rIZDlnMe9NViEUbt"
>> too long for Unix domain socket.
>
> You see the error message: the file name of the socket is too long. What
> has changed wrt openssh 6.6? Has the template Tramp uses being expanded
> differently? And why is there the suffix ".rIZDlnMe9NViEUbt" after the
> port number?

Release notes for openssh 6.7 [1] tell:

 * ssh(1): Add a %C escape sequence for LocalCommand and ControlPath
   that expands to a unique identifer based on a hash of the tuple of
   (local host, remote user, hostname, port). Helps avoid exceeding
   miserly pathname limits for Unix domain sockets in multiplexing
   control paths; bz#2220

I changed `tramp-ssh-controlmaster-options' as follows:

(setq tramp-ssh-controlmaster-options "-o ControlPath=%%C -o
ControlMaster=auto -o ControlPersist=no")

And it started working.

BTW, "name is too long" errors also occurred with 6.6, too.  And the
template was expanded similarly, I checked that.

The original value contained "%t.%%r@%%h:%%p".  %r, %h and %p could be
substituted by %C as the above doc says.  But what about %t?  It's a
temporary file as I understand and is substituted by Tramp, not by ssh.
Is it critical that it should be present in the resulting file name?

Filipp

[1] http://www.openssh.com/txt/release-6.7