mirror of
https://github.com/NixOS/nix.git
synced 2025-11-10 04:26:01 +01:00
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>
930 B
930 B
| synopsis | prs | issues | ||
|---|---|---|---|---|
| Add support for user@address:port syntax in store URIs |
|
|
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:2222ssh://[b573:6a48:e224:840b:6007:6275:f8f7:ebf3]:22ssh-ng://[b573:6a48:e224:840b:6007:6275:f8f7:ebf3]:22