ssh-copy-id hangs when using ControlMaster auto

Bug #1342412 reported by Gabriele Vivinetto on 2014-07-15
28
This bug affects 6 people
Affects Status Importance Assigned to Milestone
portable OpenSSH
Unknown
Unknown
openssh (Ubuntu)
Medium
Unassigned

Bug Description

[Workaround]

ssh -O exit hostname # this will kill all ssh connection to that host
ssh-copy-id username@hostname # now it works because it's the first connection
# continue using ssh as normal.

Thanks to Ruben Laguna (ecerulm) in comment 7.

[Original Description]

On ubuntu 14.04 amd 64, running openssh-client 1:6.6p1-2ubuntu2, when using in ~/ssh/config
  ControlMaster auto

If you open an ssh connection to an host, and after try to run ssh-copy-id on the same host, trying to reuse the already opened connection, ssh-copy-id hangs.
If you press CTRL-D, the script goes on, without installing any key.

It seems that the script hangs at lines
 REMOTE_VERSION=$(ssh -v -o PreferredAuthentications=',' "$@" 2>&1 |
                  sed -ne 's/.*remote software version //p')

Found another bug report here: http://www.gossamer-threads.com/lists/openssh/bugs/57363

ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: openssh-client 1:6.6p1-2ubuntu2
ProcVersionSignature: Ubuntu 3.13.0-32.56-generic 3.13.11.4
Uname: Linux 3.13.0-32-generic x86_64
ApportVersion: 2.14.1-0ubuntu3.2
Architecture: amd64
CurrentDesktop: Unity
Date: Wed Jul 16 01:15:34 2014
InstallationDate: Installed on 2013-10-12 (276 days ago)
InstallationMedia: Ubuntu 13.04 "Raring Ringtail" - Release amd64 (20130424)
RelatedPackageVersions:
 ssh-askpass N/A
 libpam-ssh N/A
 keychain N/A
 ssh-askpass-gnome 1:6.6p1-2ubuntu2
SSHClientVersion: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2, OpenSSL 1.0.1f 6 Jan 2014
SourcePackage: openssh
UpgradeStatus: Upgraded to trusty on 2014-06-10 (35 days ago)
modified.conffile..etc.ssh.ssh.config: [modified]
mtime.conffile..etc.ssh.ssh.config: 2014-06-19T17:39:06.965908

Robie Basak (racb) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better.

I can see why it would hang on the line you've said - I presume the client will never see "remote software version" in this case.

I wonder if a fix would be to have line add "-Snone" to the ssh call, so that no control socket is ever used.

Changed in openssh (Ubuntu):
importance: Undecided → Medium

It would be nice to use control socket, because in this way, you don't have to enter password again to copy the ssh-key if you have an already connected session.

The problem is that when connecting using a control socket, it's not printed the line like:

 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3

So the variable REMOTE_VERSION is not set.

The version in saucy works perfectly:
http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/openssh/saucy/view/head:/contrib/ssh-copy-id
It seems that the current is a huge rewrite ...

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in openssh (Ubuntu):
status: New → Confirmed
Ruben Laguna (ecerulm) wrote :

For reference to those that land here looking for a quick solution.

ssh -O exit hostname # this will kill all ssh connection to that host
ssh-copy-id username@hostname # now it works because it's the first connection
# continue using ssh as normal.

Robie Basak (racb) on 2015-10-07
description: updated
Wil Tan (wil) wrote :

You could also do:

ssh-copy-id -o ControlPath=none username@hostname

without killing the existing SSH connection.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.