Bug 1478828 - Connecting to remote servers with non-standard ssh port fails
Connecting to remote servers with non-standard ssh port fails
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: cockpit (Show other bugs)
7.4
All Unspecified
unspecified Severity low
: rc
: ---
Assigned To: Martin Pitt
qe-baseos-daemons
https://github.com/cockpit-project/co...
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2017-08-07 04:29 EDT by Martin Pitt
Modified: 2017-10-19 11:13 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
When using the Cockpit interface to connect to a remote host using an SSH port other than 22, the connection failed and displayed the following error message: Failed to add machine: Unexpected type 'int' in argument" This update fixes the underlying code, and using a non-standard SSH port for a Cockpit connection now works correctly.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2017-10-19 11:13:55 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Martin Pitt 2017-08-07 04:29:26 EDT
Description of problem:


Version-Release number of selected component (if applicable):

cockpit-system-138-9.el7.noarch

How reproducible:


Steps to Reproduce:
1. Set up or find a computer/vm/container with an ssh server that listens on a port other than 22. For testing you could just add "Port 600" to /etc/ssh/sshd_config, run "setenforce 0" and "systemctl stop sshd; systemctl start sshd" on the Cockpit machine.
2. Open Cockpit (e. g. https://localhost:9090) and log in
3. Change the URL to log in to the above remote host. In the scenario above this would be <https://localhost:9090/@127.0.0.1:600>. If you used another remote host, it would look like <https://localhost:9090/@my.remote.host:123>
4. Assuming that you never connected to that machine before, you will then get a "Couldn't connect to the machine" (unknown machine) warning with a Troubleshoot button. Click it.
5. Click the "Add machine" button in the troubleshoot dialog.

Actual results:

In step 5 the dialog will show an error "Failed to add machine: Unexpected type 'int' in argument".

Expected results:

In step 5 the dialog would close, the Cockpit UI changes to show the remote host, and /etc/cockpit/machines.d/99-webui.json has the new remote host with the appropriate port.


Additional info:

 * This does NOT happen when adding the remote host on the Dashboard (cockpit-dashboard package in Extras), which is the much more common way to talk to remote machines in Cockpit. Thus setting "Low" severity (but adjust as you see fit).

 * This got fixed upstream in Cockpit 140 by https://github.com/cockpit-project/cockpit/pull/6466 with a rather straightforward fix and a reproducer in the test suite.
Comment 2 Martin Pitt 2017-08-07 04:32:28 EDT
Failed test case on RHEL 7.4 Cockpit CI image: https://fedorapeople.org/groups/cockpit/logs/pull-7437-20170802-215959-249cd711-verify-rhel-7-4/log.html#95

Testing this particular feature got disabled in https://github.com/cockpit-project/cockpit/commit/66de1a701af#diff-20ae85add0c82e620f1b62a305dcae09L137 ; once the fix lands in RHEL 7.4, the test case should be re-enabled.
Comment 8 errata-xmlrpc 2017-10-19 11:13:55 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:2936

Note You need to log in before you can comment on or make changes to this bug.