Problém s klíči u ProFTPd se SFTP

neron

Problém s klíči u ProFTPd se SFTP
« kdy: 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)


PCnity

  • *****
  • 693
    • Zobrazit profil
    • E-mail
Re:Problém s klíči u ProFTPd se SFTP
« Odpověď #1 kdy: 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... ?

neron

Re:Problém s klíči u ProFTPd se SFTP
« Odpověď #2 kdy: 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.

neron

Re:Problém s klíči u ProFTPd se SFTP
« Odpověď #3 kdy: 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.  :-[

neron

Re:Problém s klíči u ProFTPd se SFTP
« Odpověď #4 kdy: 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.