LinuxCommandLibrary

wormhole

Securely transfer files between computers

TLDR

Send a file

$ wormhole send [path/to/file]
copy

Receive a file
$ wormhole receive [wormhole_code]
copy

Send raw text
$ wormhole send
copy

Send a file with a custom code phrase
$ wormhole send --code [custom_code] [path/to/file]
copy

SYNOPSIS

wormhole [options] command [arguments]

PARAMETERS

send [file(s) or directory]
    Initiates a file or directory transfer. Specifies the files or directories to be sent.

receive
    Initiates a file or directory reception. Awaits the wormhole code from the sender.

--code
    Allows you to specify the wormhole code manually, rather than having it generated automatically. Use with caution, as manually entered codes are prone to errors.

--verify
    Display the verification code for manual verification.
This flag can be used to manually verify that the transferred data arrived intact from sender to receiver.

--zeromode
    Enable Zero-Knowledge Mode, requiring the user to enter all characters of the code manually. This increases security by avoiding automatic code generation.

--relay-url
    Specify a custom relay server URL for rendezvous and transit relay. Useful if the default server is unavailable or if you want to use a private relay.

--transit-helper
    Specify a custom transit relay helper executable path. This helper assists in establishing direct connections between the two machines.

--text
    Send or receive data as text. The content will be displayed in the terminal instead of creating a file.

--stdout
    Write received content to standard output, enabling piping of data.
Works with text mode.

--help
    Display help message and exit.

--version
    Display version information and exit.

DESCRIPTION

wormhole allows you to transfer files and directories securely between two computers. It works by establishing an end-to-end encrypted connection using Curve25519, Salsa20, and Poly1305. The core principle involves generating a short, human-memorable code (called the 'wormhole code') on the sending computer and typing this same code on the receiving computer. This code is used to negotiate the encrypted connection. Once the connection is established, files are directly transferred between the machines, without relying on a central server for content storage (although a rendezvous server facilitates connection establishment). This provides a convenient and secure method for transferring data, especially when direct access via SSH or shared network drives is inconvenient or unavailable.

Wormhole is particularly useful in scenarios where you want to quickly and securely transfer data between systems without complex configuration. Its ease of use and focus on security make it a valuable tool for developers, system administrators, and anyone who needs to share files across different environments.

CAVEATS

Firewalls or restrictive network configurations can sometimes prevent wormhole from establishing a direct connection. In such cases, the transfer might be routed through the relay server, potentially reducing transfer speed.
It's important to verify the wormhole code carefully to ensure you are connecting to the correct sender and avoid unintended data transfers.

SECURITY CONSIDERATIONS

While wormhole provides strong encryption, it's crucial to keep the underlying system secure. Ensure that both the sending and receiving computers are protected from malware and unauthorized access. Using a strong and randomly generated wormhole code is also essential for preventing eavesdropping or man-in-the-middle attacks.
The --verify option increases the confidence about the data origin.

RENDEZVOUS SERVER

Wormhole uses a rendezvous server to facilitate the initial connection between the sender and receiver. While the default rendezvous server is operated by the wormhole developers, users can specify their own using the --relay-url option. This can be useful for organizations that want to maintain control over their data transfer infrastructure or for users who are concerned about privacy.

HISTORY

Wormhole was inspired by Magic Wormhole, but implemented in Python and offering improved performance and security features. The initial development focused on providing a user-friendly and secure way to transfer files without needing to configure SSH keys or deal with complex network settings. Over time, features like directory transfer, text mode, and custom relay server support have been added to enhance its usability and flexibility. It's actively maintained and widely used for ad-hoc file sharing.

SEE ALSO

scp(1), rsync(1), ssh(1)

Copied to clipboard