Read-only pull mirror of github.com/cockpit-project/cockpit: anaconda-webui's build takes pkg/lib from it.
Find a file
Allison Karlitskaya 9d0695647c ws: be more explicit when handling hostnames on cli
`cockpit-ws` has never protected hostnames from being interpreted as cli
options when passing them to the auth commands (`cockpit-session`,
`cockpit-ssh`, `cockpit.beiboot`).  There have been a couple of relevant
changes over the years:

  - our move to using cockpit-session via unix socket has removed
    exposure to this problem for `cockpit-session`

  - our move from `cockpit-ssh` (glib argument parser) to
    `cockpit.beiboot` (Python argparse) has unfortunately exposed us to
    https://github.com/python/cpython/issues/66623 which means (due to a
    strange heuristic) that arguments starting with '-' can be
    interpreted as positionals if they also have spaces in them

This gives a way to get a hostname starting with a `-` to ssh (where it
*will* be interpreted as an option) and the following argument (the
python invocation on the remote) will be interpreted as the hostname.
Fortunately, new versions of ssh will reject this hostname.  In any
case, we should firm up the code here and add `--` to ensure that it's
definitely interpreted as a hostname by ssh.

For a similar reason add a `--` to the ssh command in `cockpit-ws`.

CVE-2026-4631
2026-04-08 15:18:32 +02:00
.cockpit-ci cockpit-ci: Update container to 2026-03-14 2026-03-16 09:57:01 +01:00
.fmf test: Add FMF test metadata and scripts 2021-03-12 20:21:29 +01:00
.github build(deps): bump actions/download-artifact from 7 to 8 2026-03-03 14:31:35 +01:00
containers containers: set opencontainers labels for cockpit-ws 2026-02-18 18:17:56 +01:00
doc ws: support loading a custom login page 2026-03-30 15:57:33 +02:00
examples lib: Allow providing arguments to systemd-run (#22467) 2025-10-09 15:00:18 +02:00
LICENSES REUSE: Add missing licenses 2026-02-04 10:24:11 +01:00
node_modules@1dea97a0e9 Bump the esbuild group with 2 updates 2026-04-05 20:26:38 +02:00
pkg shell: fix forwarding of iframe "init" messages 2026-04-08 14:34:58 +02:00
plans tmt: Enable extra storage tests on image mode 2025-08-04 15:45:26 +02:00
po po: Update from Fedora Weblate 2026-04-08 11:06:05 +02:00
selinux selinux: allow cockpit-ws to get attributes of pidfs 2026-03-23 20:41:30 +01:00
src ws: be more explicit when handling hostnames on cli 2026-04-08 15:18:32 +02:00
test test: fix a SPDX header, add a Copyright 2026-04-08 14:34:58 +02:00
tools make-sysext: don't enable -Werror 2026-02-26 19:33:09 +01:00
vendor ws: be more explicit when handling hostnames on cli 2026-04-08 15:18:32 +02:00
.eslintignore Revert "Ignore sizzle.js in ESLint" 2022-05-23 13:33:09 +02:00
.eslintrc.json build: Allow TS functions to be used before their definition 2024-11-14 10:57:54 +02:00
.gitignore git: Add configure~ to gitignore 2026-02-10 13:13:57 +01:00
.gitleaks.toml gitleaks: Ignore mock SSH keys 2022-10-03 09:01:53 +02:00
.gitmodules modules: rename to vendor 2023-09-07 17:48:36 +02:00
.stylelintrc.json build: Update stylelint to 17 2026-02-12 16:33:29 +02:00
AUTHORS AUTHORS: Refer to git information 2019-03-06 16:41:45 +01:00
autogen.sh build: write a bare minimal PEP 517 build backend 2023-05-12 11:01:02 +02:00
build.js build: Silence if-function deprecation from PF6 2026-03-17 12:32:30 +01:00
configure.ac REUSE: Convert license headers to SPDX format 2026-02-04 10:24:11 +01:00
files.js qunit: port test-protocol to TypeScript 2026-04-08 14:34:58 +02:00
HACKING.md HACKING: Update web server debug logging 2026-02-10 08:03:10 +01:00
Makefile.am REUSE: Add missing licenses 2026-02-04 10:24:11 +01:00
package.json Bump the esbuild group with 2 updates 2026-04-05 20:26:38 +02:00
packit.yaml packit: Manually download Source0 tar (#23025) 2026-03-23 14:34:29 +01:00
pyproject.toml pyproject: add "test.pytest" to "known first party" 2026-03-31 13:52:05 +02:00
README.md various: replace mentions of IRC with Matrix 2023-03-29 15:41:28 +02:00
tsconfig.json build: Move to es2021 2024-12-06 10:35:32 +01:00

Cockpit

A sysadmin login session in a web browser

cockpit-project.org

Cockpit is an interactive server admin interface. It is easy to use and very lightweight. Cockpit interacts directly with the operating system from a real Linux session in a browser.

Using Cockpit

You can install Cockpit on many Linux operating systems including Debian, Fedora and RHEL.

Cockpit makes Linux discoverable, allowing sysadmins to easily perform tasks such as starting containers, storage administration, network configuration, inspecting logs and so on.

Jumping between the terminal and the web tool is no problem. A service started via Cockpit can be stopped via the terminal. Likewise, if an error occurs in the terminal, it can be seen in the Cockpit journal interface.

You can also easily add other machines that have Cockpit installed and are accessible via SSH and jump between these hosts.

Development