Fórum Root.cz

Hlavní témata => Server => Téma založeno: neron 20. 04. 2012, 18:00:09

Název: Problém s klíči u ProFTPd se SFTP
Přispěvatel: neron 20. 04. 2012, 18:00:09
Nakonfiguroval jsem ProFTPd se SFTP podporou, ale resim nasledujici problem. SSH klice jsou ulozene v databazi a uzivatele maji moznost si pres webove rozhrani pridat svuj klic (pokud znaji heslo). Konfigurace umoznuje vice klicu k jednomu uctu, ale problem nastane, pokud nekdo vlozi misto verejneho klice nejaky nesmysl, ackoliv se pak prihlasuje uzivatel, ktery ma klic vlozen spravne, server projede vsechny klice a pri zpracovani toho spatneho ohlasi chybu a klienta odmitne. Ja bych to nejak potreboval zaonacit, aby uzivatele se spravne vlozenym klicem prihlasil.


Apr 20 17:55:28 mod_sftp/0.9.7[11312]: message format error: unable to read 2412888373 bytes of mpint (buflen = 932)
Apr 20 17:55:28 mod_sftp/0.9.7[11312]: disconnecting (Application error)
Název: Re:Problém s klíči u ProFTPd se SFTP
Přispěvatel: PCnity 20. 04. 2012, 18:07:00
A co tak cez openssl najprv tie kluce skontrolovat nez ich app vlozi do db? Aj php ma vstavane funkcie pre konverziu a overovanie klucov. Ved ProFTPd vyzaduje kluce v  RFC4716 cize ich asi aj tak naprv konvertujes... ?
Název: Re:Problém s klíči u ProFTPd se SFTP
Přispěvatel: neron 20. 04. 2012, 18:09:33
A co tak cez openssl najprv tie kluce skontrolovat nez ich app vlozi do db? Aj php ma vstavane funkcie pre konverziu a overovanie klucov. Ved ProFTPd vyzaduje kluce v  RFC4716 cize ich asi aj tak naprv konvertujes... ?

To je vlastně pravda. Díky, občas člověk hledá složitější řešení než je potřeba. Aplikace sice není v PHP, ale v Ruby si s tm taky poradím.
Název: Re:Problém s klíči u ProFTPd se SFTP
Přispěvatel: neron 20. 04. 2012, 22:03:21
Jsem se asi přecenil, zaboha nemůžu přijít na to, jak s klíčem v tomhle formátu pracovat (DSA v RFC4716), ani v Ruby, ani v PHP, ani primo pomoci openssl.  :-[
Název: Re:Problém s klíči u ProFTPd se SFTP
Přispěvatel: neron 20. 04. 2012, 22:22:44
Tak už to mám, trik je v tom, že to neumí modul OpenSSL, ale Net::SSH, takže třeba nějak takto:

Net::SSH::KeyFactory.load_data_public_key(x)

Pokud je klíč v pořádku, tak ho načte, pokud ne, vyhodí výjimku.