1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-10 04:26:01 +01:00
nix/doc/manual/rl-next/port-in-store-uris.md
Maciej Krüger 49ba06175e
Add user@address:port support
This patch allows users to specify the connection port
in the store URLS like so:

```
nix store info --store "ssh-ng://localhost:22" --json
```

Previously this failed with: `error: failed to start SSH connection to 'localhost:22'`,
because the code did not distinguish the port from the hostname. This
patch remedies that problem by introducing a ParsedURL::Authority type
for working with parsed authority components of URIs.

Now that the URL parsing code is less ad-hoc we can
add more long-awaited fixes for specifying SSH connection
ports in store URIs.

Builds upon the work from bd1d2d1041.

Co-authored-by: Sergei Zimmerman <sergei@zimmerman.foo>
Co-authored-by: John Ericson <John.Ericson@Obsidian.Systems>
2025-08-06 23:48:14 +03:00

930 B

synopsis prs issues
Add support for user@address:port syntax in store URIs
3425
7044

It's now possible to specify the port used for the SSH stores directly in the store URL in accordance with RFC3986. Previously the only way to specify custom ports was via ssh_config or NIX_SSHOPTS environment variable, because Nix incorrectly passed the port number together with the host name to the SSH executable. This has now been fixed.

This change affects store references passed via the --store and similar flags in CLI as well as in the configuration for remote builders. For example, the following store URIs now work:

  • ssh://127.0.0.1:2222
  • ssh://[b573:6a48:e224:840b:6007:6275:f8f7:ebf3]:22
  • ssh-ng://[b573:6a48:e224:840b:6007:6275:f8f7:ebf3]:22