scp(1) on Solnix vs Linux and the BSDs

On Solnix, scp is OpenSSH scp from the openssh package, which is part of the base system. The visible text matches the Linux (openssh-10.5p1) page, and its SYNOPSIS and options match FreeBSD and NetBSD. The differences are small: the OpenBSD SYNOPSIS has no -s, and the FreeBSD page describes -3 differently.

What Solnix runs

A default Solnix system runs the OpenSSH scp published as pkgs.solnix.openssh and found in the base system packages. No other variants are shipped. The Solnix EXIT STATUS section contains only the unexpanded line 'Ex -std scp', so it lists no exit codes. The bundle text is trimmed after the -o option list and the -X options, so the HISTORY and later sections are not available for comparison.

Differences

Compared withTopicWhat differs
Linuxsame program as LinuxSolnix and Linux scp(1) are the same OpenSSH scp, as far as the bundle shows. SYNOPSIS, flag set and the option descriptions read the same, including SFTP as the default transfer protocol and -O for the legacy SCP protocol.
Source: Solnix scp(1) SYNOPSIS, DESCRIPTION, -O; Linux scp(1) SYNOPSIS, DESCRIPTION, -O
FreeBSD-3 wording on FreeBSDSolnix says -3 (transfer through the local host) is the default, and -R copies directly between the remote hosts. The FreeBSD page says 'Without this option the data is copied directly between the two remote hosts', then also says 'This mode is the default'. That is ambiguous. Pass -3 or -R explicitly in scripts.
Source: Solnix scp(1) -3, -R; FreeBSD scp(1) -3
OpenBSD-s missing from OpenBSD SYNOPSISThe Solnix, Linux, FreeBSD and NetBSD SYNOPSIS lines list -s ([-346ABCOpqRrsTv]). The OpenBSD SYNOPSIS is [-346ABCOpqRrTv] and has no -s. The bundle text does not show what -s does, so check the full page before using it.
Source: Solnix scp(1) SYNOPSIS; OpenBSD scp(1) SYNOPSIS; FreeBSD/NetBSD/Linux scp(1) SYNOPSIS
all fourremote-to-remote copiesOn Solnix, Linux, OpenBSD and NetBSD, copies between two remote hosts go through the local host by default. -R makes scp run on the origin host instead, which needs password-less authentication from that host to the destination. With -R and a URI, you cannot give a port on the target.
Source: Solnix scp(1) -3, -R, DESCRIPTION; Linux/OpenBSD/NetBSD scp(1) -3
all four-T and strict filename checkingSolnix scp checks by default that filenames received from a remote host match those requested. -T turns this off, because wildcard handling differs between systems and the checks can reject wanted files. Every counterpart SYNOPSIS also lists -T.
Source: Solnix scp(1) -T; Linux/FreeBSD/OpenBSD/NetBSD scp(1) SYNOPSIS
all four-X SFTP tuningSolnix -X accepts nrequests (default 64 concurrent requests) and buffer (default 32KB). All four counterpart SYNOPSIS lines list -X. Their -X option text is cut off in the bundle, so the supported keys and defaults there are not confirmed.
Source: Solnix scp(1) -X; Linux/FreeBSD/OpenBSD/NetBSD scp(1) SYNOPSIS

Standards

Writing portable scripts

  • Write -3 or -R explicitly for remote-to-remote copies instead of relying on the default, because the FreeBSD page words the -3 default differently.
  • Do not use -s in scripts that must also run on OpenBSD, whose SYNOPSIS does not list it. Use -O only after checking that the server lacks SFTP, because SFTP is the default everywhere in the bundle.

Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.