Skip to content

Transfer Files with Netcat

Purpose: You may find that you need to transfer a file, such as a public SSH key, or some other kind of file between two devices. In this scenario, we assume both devices have the netcat command available to them. By putting a network listener on the device recieving the file, then sending the file to that device's IP and port, you can successfully transfer data between computers without needing to set up SSH, FTP, or anything else to establish initial trust between the devices. Original Reference Material.

Warning

The data being transferred will not be encrypted. If you are transferring relatively-safe files such as public SSH keys, etc, this should be fine.

Destination Computer

Run the following command on the computer that will be recieving the file.

netcat -l <random-port> > /tmp/OUTPUT-AS-FILE.txt

Source Computer

Run the following command on the computer that will be sending the file to the destination computer.

cat INPUT-DATA.txt | netcat <IP-of-Destination-Computer> <Port-of-Destination-Computer> -q 0

Info

The -q 0 command argument causes the netcat connection to close itself automatically when the transfer is complete.