A small tool to easy transfer files between systems using SFTP - great for setting up a backup system!
sshconnect
is a simple C utility that uses libssh to securely transfer a local file to a remote host over SFTP, using a GTK based window UI for ease of use. It handles:
- SSH host‑key verification (known_hosts)
- Password authentication
- Automatic creation of an
upload/
directory on the server - Full-file SFTP transfer with progress feedback
- [Prerequisites]
- [Building]
- [Usage]
- [License]
- [Contact]
- C compiler (e.g.
gcc
orclang
) - libssh development headers & library
- GTK development headers & library
- OpenSSL development headers & library (usually pulled in by libssh)
Compile directly with: gcc -o sshconnect sshconnect.c $(pkg-config --cflags --libs gtk+-3.0 libssh)
./sshconnect
Enter remote host IP/hostname
Trust the host key (if first time connecting)
Enter your SSH password
Enter the local filename to upload
The file will be placed under upload/ on the remote server.
This project is released under the Apache 2.0 License.
Ram Sundar Radhakrishnan
The GTK process gets blocked once the SFTP file transfer is underway and an error message is displayed that claims the program is inactive. This is a false alert, and the file transfer runs successfully without problems.
The probable solution is to move the GTK process to a different thread - please contact me if you have any ideas on how to best do this!