usabilitydynamics/docker-sftp

By usabilitydynamics

Updated about 2 hours ago

Secure SSH/SFTP gateway for controlled Kubernetes workload access using GitHub authentication.

Image
Networking
Security
Developer tools
0

1.1K

usabilitydynamics/docker-sftp repository overview

Docker SFTP/SSH Gateway

Secure SSH/SFTP gateway for controlled access to Kubernetes workloads using GitHub SSH keys and repository permissions. It is a gateway into running pods, not a standalone file server.

Quick Reference

Supported Tags

  • latest
  • Semantic version tags, such as 0.14.0 (recommended for pinned deployments)

The published release image is multi-architecture: linux/amd64 and linux/arm64.

What It Does

  1. Authenticates SSH users through their GitHub public keys.
  2. Evaluates the user’s repository access before granting gateway access.
  3. Proxies SSH sessions to the selected Kubernetes workload through kubectl exec.
  4. Supports SFTP when the target container provides an SFTP server.

Run Locally

Provide secrets and cluster values from your environment; do not embed them in an image or command history.

docker run -d \
  --name sftp-gateway \
  -p 2222:22 \
  --env ACCESS_TOKEN \
  --env KUBERNETES_CLUSTER_ENDPOINT \
  --env KUBERNETES_CLUSTER_USER_TOKEN \
  usabilitydynamics/docker-sftp:0.14.0

Connect

# Shell in a pod
ssh namespace.pod-name@YOUR_GATEWAY_ADDRESS

# Transfer a file
scp local-file namespace.pod-name@YOUR_GATEWAY_ADDRESS:/remote/path/

The SSH key must be associated with the user’s GitHub account and the user must have the repository role permitted by the gateway configuration.

Configuration

The image provides safe defaults. Deployments typically supply only their environment-specific Kubernetes values and secrets:

  • ACCESS_TOKEN: GitHub token used for access checks.
  • KUBERNETES_CLUSTER_ENDPOINT: Kubernetes API endpoint.
  • KUBERNETES_CLUSTER_USER_TOKEN: service-account token with only the required access.
  • ALLOW_SSH_ACCESS_ROLES: optional permitted GitHub roles; defaults to admin,maintain,write.

Use Docker secrets, Kubernetes Secrets, or the deployment system for sensitive values. For the complete runtime contract, see https://github.com/udx/docker-sftp/blob/master/docs/environment.md.

Documentation

Tag summary

Content type

Image

Digest

sha256:d55cbdb1d

Size

444.9 MB

Last updated

about 2 hours ago

docker pull usabilitydynamics/docker-sftp