{"id":36236281,"url":"https://github.com/ggrandes/sftpserver","last_synced_at":"2026-01-11T06:00:00.624Z","repository":{"id":6415257,"uuid":"7653618","full_name":"ggrandes/sftpserver","owner":"ggrandes","description":"SFTP Server (SSH File Transfer Protocol) in Java, based on Apache MINA SSHD","archived":false,"fork":false,"pushed_at":"2024-09-15T09:50:14.000Z","size":142,"stargazers_count":79,"open_issues_count":4,"forks_count":59,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-03-13T03:01:44.849Z","etag":null,"topics":["java","mina","sftp","sshd"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ggrandes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-01-16T20:50:06.000Z","updated_at":"2025-02-27T06:06:27.000Z","dependencies_parsed_at":"2024-07-28T19:45:05.336Z","dependency_job_id":null,"html_url":"https://github.com/ggrandes/sftpserver","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/ggrandes/sftpserver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fsftpserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fsftpserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fsftpserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fsftpserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ggrandes","download_url":"https://codeload.github.com/ggrandes/sftpserver/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fsftpserver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28293188,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T04:44:51.577Z","status":"ssl_error","status_checked_at":"2026-01-11T04:44:44.232Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","mina","sftp","sshd"],"created_at":"2026-01-11T05:59:59.669Z","updated_at":"2026-01-11T06:00:00.617Z","avatar_url":"https://github.com/ggrandes.png","language":"Java","readme":"# sftpserver\n\nSFTP Server (SSH File Transfer Protocol) based on `Apache MINA SSHD`. Open Source Java project under Apache License v2.0\n\n### Current Stable Version is [1.5.0](https://github.com/ggrandes/sftpserver/releases)\n\n---\n\n### Versions\n\n| sftpserver | Java |\n| :--------- | :--- |\n| 1.0.x      | 1.6+ |\n| 1.1.x      | 1.6+ |\n| 1.2.x      | 1.7+ |\n| 1.3.x      | 1.8+ |\n| 1.4.x      | 1.8+ |\n| 1.5.x      | 1.8+ |\n\n## Config:\n\n###### `${sftp.home}/conf/[id]/sftpd.properties` (all in one file)\n\n\t#\n\t## Global Options\n\t#\n\t# Listen on localhost and localnet\n\t#sftpserver.global.host=127.0.0.1,192.168.1.1\n\t# Listen on TCP port 22222\n\tsftpserver.global.port=22222\n\t# Enable compression (requires jzlib) (default: false)\n\tsftpserver.global.compress=true\n\t# Enable dummy shell (default: false)\n\tsftpserver.global.dummyshell=true\n\t# Enable log request (default: false)\n\tsftpserver.global.logrequest=true\n\t#\n\t## Configure user \"test\"\n\t#\n\t# Password for user (unencrypted-plain-text)\n\t#sftpserver.user.test.userpassword=changeit\n\t# Password for user (encrypted)\n\tsftpserver.user.test.userpassword=$1$156RlTZJ$76bzjtXvDfgvouurtgEI10\n\t# PublicKeys for user (OpenSSH format)\n\tsftpserver.user.test.userkey.1=ssh-rsa AAAAB3NzaC1yc2EAAAADA...E7uQ==\n\tsftpserver.user.test.userkey.2=ssh-ed25519 AAAAC3NzaC1...QfX\n\tsftpserver.user.test.userkey.3=ecdsa-sha2-nistp256 AAAAE2VjZ...Z99xM=\n\t# Set user home directory (chrooted)\n\tsftpserver.user.test.homedirectory=./home/test/\n\t# Enable user (default: false)\n\tsftpserver.user.test.enableflag=true\n\t# Enable write (default: false)\n\tsftpserver.user.test.writepermission=true\n\t#\n\n###### `${sftp.home}/conf/[id]/sftpd.properties` + `${sftp.home}/conf/[id]/htpasswd`\n\n\t#\n\t## Global Options\n\t#\n\t# Listen on TCP port 22222\n\tsftpserver.global.port=22222\n\t# ...\n\t# ... same params as \"all in one file\" ...\n\t# ...\n\t#\n\t## Configure htpasswd\n\t#\n\t# Enable htpasswd (default: false)\n\tsftpserver.htpasswd.enableflag=true\n\t# Set home directory for all users (chrooted)\n\tsftpserver.htpasswd.homedirectory=./home/test/\n\t# Enable write (default: false)\n\tsftpserver.htpasswd.writepermission=true\n\t#\n\n---\n\n## Running (Linux)\n\n    ./bin/sftpd.sh \u003crun|start|stop|restart|status\u003e [id]\n\n## Upstart Script (Linux)\n\n    ./bin/sftpd.conf (you can copy to /etc/init/)\n\n## Systemd Service (Linux)\n\n    ./bin/sftpd.service (you can copy to /etc/systemd/system/)\n\n## Generate Encrypted Password (Linux)\n\n    ./bin/sftpd.sh \u003cpwd\u003e\n\n---\n\n# DONEs\n\n* Use Java SecurityManager/Policy File\n* Non operating system accounts\n* Homes are chrooted\n* ReadOnly accounts\n* Encrypted Passwords (SHA2/MD5/APR1)\n* PublicKey Authenticator (OpenSSH keys RSA/EcDSA/Ed25519)\n* Support [htpasswd file](https://httpd.apache.org/docs/2.4/misc/password_encryptions.html) (APR1) \n\n## MISC\nCurrent hardcoded values:\n\n* Default `${sftp.home}` is `/opt/sftpd`\n* Hostkeys are writed to: `hostkey.pem` or `hostkey.ser` in `${sftp.home}/keys/` directory\n* SecurityManager/Policy File is in `conf/${ID}/sftpd.policy` (custom) or `lib/sftpd.policy` (generic)\n* Htpasswd File is in `conf/${ID}/htpasswd` (custom) or `conf/htpasswd` (generic)\n* Default KexAlgorithms: `curve25519-sha256, curve25519-sha256@libssh.org, diffie-hellman-group14-sha256, diffie-hellman-group16-sha512, diffie-hellman-group-exchange-sha256, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group14-sha1`\n* Default Ciphers: `chacha20-poly1305@openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, aes256-gcm@openssh.com`\n* Default MACs: `hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1`\n\n---\nInspired in [mina-sshd](https://github.com/apache/mina-sshd/blob/master/sshd-core/src/main/java/org/apache/sshd/server/SshServer.java) and [openssh](http://www.openssh.org/).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fggrandes%2Fsftpserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fggrandes%2Fsftpserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fggrandes%2Fsftpserver/lists"}