Dogodilo se prvo značajno izdanje poslužitelja SFTPGo 1.0, koji vam omogućuje organiziranje udaljenog pristupa datotekama pomoću protokola SFTP, SCP/SSH i Rsync. Između ostalog, SFTPGo se može koristiti za omogućavanje pristupa Git repozitoriju pomoću SSH protokola. Podaci se mogu prenijeti iz lokalnog datotečnog sustava i iz vanjske pohrane kompatibilne s Amazon S3 i Google Cloud Storage. Za pohranu korisničke baze podataka i metapodataka koriste se DBMS-ovi s podrškom za SQL ili format ključ/vrijednost, kao što su PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x ili bbolt 1.3.x. Postoji i način pohranjivanja metapodataka u RAM, koji ne zahtijeva povezivanje vanjske baze podataka. Kod projekta je napisan u Go i distribuira licenciran pod GPLv3.
Glavne značajke:
Svaki račun je chrootiran, ograničavajući pristup korisničkom početnom imeniku. Moguće je stvoriti virtualne direktorije koji referenciraju podatke izvan korisničkog matičnog imenika.
Računi su pohranjeni u virtualnoj korisničkoj bazi podataka koja se ne preklapa s korisničkom bazom podataka sustava. SQLite, MySQL, PostgreSQL, bbolt i in-memory storage mogu se koristiti za pohranu korisničkih baza podataka. Dostupne su mogućnosti za mapiranje virtualnih i sistemskih računa - moguće je izravno ili nasumično mapiranje (jedan korisnik sustava može se mapirati u drugog virtualnog korisnika).
Podržana je provjera autentičnosti pomoću javnih ključeva, SSH ključeva i lozinki (uključujući interaktivnu provjeru autentičnosti lozinkom unesenom s tipkovnice). Moguće je vezati nekoliko ključeva za svakog korisnika, kao i postaviti autentifikaciju u više faktora i više koraka (primjerice, u slučaju uspješne autentifikacije ključa može se dodatno zatražiti lozinka).
Za svakog korisnika moguće je konfigurirati različite metode autentifikacije, kao i definirati vlastite metode, implementirane pozivom vanjskih programa autentifikatora (primjerice, za autentifikaciju putem LDAP-a) ili slanjem zahtjeva putem HTTP API-ja.
Moguće je povezati vanjske rukovatelje ili HTTP API pozive za dinamičku promjenu korisničkih parametara, koji se pozivaju prije nego što se korisnik prijavi. Podržano dinamičan stvaranje korisnika nakon povezivanja.
Podržava pojedinačne kvote za veličinu podataka i broj datoteka.
Podrška za ograničavanje propusnosti s odvojenom konfiguracijom ograničenja za dolazni i odlazni promet, kao i ograničenja broja istodobnih veza.
Alati za kontrolu pristupa koji djeluju u odnosu na korisnika ili imenik (možete ograničiti pregled popisa datoteka, zabraniti učitavanje, preuzimanje, prepisivanje, brisanje, preimenovanje ili promjenu prava pristupa, zabraniti stvaranje imenika ili simboličkih veza itd.).
Za svakog korisnika možete definirati pojedinačna mrežna ograničenja, na primjer, možete dopustiti prijavu samo s određenih IP adresa ili podmreža.
Podržava filtere povezivanja za preuzeti sadržaj u odnosu na pojedinačne korisnike i direktorije (na primjer, možete blokirati preuzimanje datoteka s određenom ekstenzijom).
Moguće je vezati rukovatelje koji se pokreću tijekom raznih operacija s datotekom (preuzimanje, brisanje, preimenovanje itd.). Osim rukovatelja poziva, podržano je slanje obavijesti u obliku HTTP zahtjeva.
Automatsko prekidanje neaktivnih veza.
Ažuriranje atomske konfiguracije bez prekidanja veza.
HAProxy PROXY protokol podržan je za organiziranje uravnoteženja opterećenja ili proxy veza na SFTP/SCP usluge bez gubitka informacija o izvornoj IP adresi korisnika.
REST API za upravljanje korisnicima i imenicima, stvaranje sigurnosnih kopija i generiranje izvješća o aktivnim vezama.
Web sučelje (http://127.0.0.1:8080/web) za konfiguraciju i nadzor (konfiguracija putem uobičajenih konfiguracijskih datoteka također je podržana).
Mogućnost definiranja postavki u formatima JSON, TOML, YAML, HCL i envfile.
podrška veze putem SSH s ograničenim pristupom naredbama sustava. Na primjer, dopušteno je pokretati naredbe potrebne za Git (git-receive-pack, git-upload-pack, git-upload-archive) i rsync, kao i nekoliko ugrađenih naredbi (scp, md5sum, sha*sum , cd, pwd, sftpgo-copy i sftpgo-remove).
režim prenosiv za dijeljenje jednog zajedničkog imenika s automatskim generiranjem vjerodajnica za povezivanje oglašenih putem multicast DNS-a.
Ugrađeni sustav profiliranje za analizu performansi.
Pojednostavljeno postupak migracija računa sustava Linux.