Skip to content

πŸ” SFTP with key and password base authentication

Notifications You must be signed in to change notification settings

meibraransari/sftp-server-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 

Repository files navigation

Created Updated Maintainer
2024-07-27 14:01:27 +0530
2024-11-02 19:47:44 +0530
Ibrar Ansari

πŸ“’πŸ“’πŸ“’ Attention all Docker 🐳 Beginners & Professionals! 🎯

SFTP Server Docker

πŸ’» Unlock the power of SFTP with this Ubuntu image, perfect for testing and development! πŸ› οΈ

🚨 Please note: This image is designed for educational and testing purposes πŸ“š πŸ§ͺ ONLY! It is NOT SUITABLE for production environments! 🚫

This Docker image is built on Ubuntu 22.04 and comes pre-installed with an SSH server, enabling seamless creation of SSH/SFTP-accessible containers. You can effortlessly configure access using SSH keys or by utilizing a default username and password.

🎬 Video Demonstration

Watch on Youtube

Step 1: Create Authentication SSH-Keygen Keys.

ssh-keygen -t rsa -f ~/.ssh/sftp_id_rsa_key -b 4096 -C "This is used for sftp" -N ""
ls -alsh ~/.ssh/

Step 2: Pull docker image

docker pull ibraransaridocker/sftp-server-docker:latest

Step 3: Set variables to run the docker container.

Change πŸ‘‡ variables(containername, username, password & port) according to your need.

container_name=sftp_server_1
sftp_user=ibrar_ansari
sftp_pass=your_secure_password
sftp_port=2023
container_image=ibraransaridocker/sftp-server-docker:latest
key_path=~/.ssh/sftp_id_rsa_key.pub
mount_path=/ansari

Step 4: Run docker container.

docker run -itd --name=$container_name -p $sftp_port:22 -e SSH_USERNAME=$sftp_user -e PASSWORD=$sftp_pass -e AUTHORIZED_KEYS="$(cat $key_path)" -v $mount_path:/home/$ssh_user/$mount_path $container_image

Note:- Mounted path will be available under /home/{your_user}/mount_path.

Step 5: Test SSH connection

Get Node IP:

hostname=$(hostname -I | awk '{print $1}')

Pem Key Method:

ssh -i ~/.ssh/sftp_id_rsa_key -p $sftp_port $sftp_user@$hostname

Password Method:

ssh -p $sftp_port $sftp_user@$hostname

Step 6: Test SFTP Connection

Test SFTP connection with password method:

sftp <SFTP_USER>@<HOST_IP> -P <PORT>

Test SFTP connection with key method:

sftp -P <PORT> -i <PRIVATE_KEY_PATH> <SFTP_USER>@<HOST_IP> 

# If the -i option is not available, you can use the -o option with a syntax like::

sftp -P <PORT> -oIdentityFile=<PRIVATE_KEY_PATH> <SFTP_USER>@<HOST_IP> 

Connection file method:

# Create file and assign private key to connect sftp
nano ~/.ssh/config.sftp
Host work
	Host <HOST_IP>
	User <SFTP_USER>
	IdentityFile <PRIVATE_KEY_PATH>
	AddKeysToAgent yes
	Port <PORT>

# Connect it
sftp -F <PRIVATE_KEY_PATH> <HOST_IP>

Using FileZilla

Host: sftp://<Your_Host_IP>
Username: Value of sftp_user variable.
Password: Value of sftp_pass variable. 
Port: Value of sftp_port variable. 

Note:- Mounted path will be available under /home/{your_user}/mount_path.

πŸ’Ό Connect with me πŸ‘‡πŸ‘‡ 😊

Releases

No releases published

Packages

No packages published