No, ono to vypadá jako jednoduchá otázka, ale když jsem se zamyslel, tak jsem zjistil, že to opravdu taková sranda není. Jedna věc je ten rozdíl tak nějak vědět a tušit a druhá věc je ho vysvětlit.
Nejdřív co mají společného: úkolem obou je vytvořit šifrovaný tunel mezi dvěma stranami, přes který je pak možné přenášet data. To je ale to jediné společné.
SSL bylo původně navrženo pro protokol HTTP, ačkoliv dnes se s ním můžeme setkat u mnoha dalších (POP3, IMAP4, XMPP, FTP...). Proti tomu SSH bylo vymyšleno jako tunel do unixového serveru a primárně se používá pro ovládání vzdáleného terminálu. Ale taky to není jediné využití, jak jsi sám podotkl, dají se přesto posílat soubory :-). SSH je výrazně univerzálnější než si většina lidí myslí.
Oba protokoly jsou tedy silně univerzální a teoreticky zaměnitelné (ačkoliv v praxi se pro konkrétní úkoly vždycky využívá jedno nebo druhé). Ten zásadní rozdíl je ale v tom, jak probíhá autorizace. Zatímco u SSL a TLS je autorizace volitelná a komunikace může probíhat anonymně, u SSH autorizace probíhá vždy. Důležité je i to, jak probíhá. SSL používá takzvané certifikáty a aby fungovala, je třeba mít hierarchii autorit - důvěryhodných orgánů, které ověří, že server XBanka patří opravdu té a té firmě a ta se pak certifikátem prokazuje.
SSH proti tomu má hromadu možných způsobů autorizace. Obvykle se používají klíče, které si server vygeneruje sám (po instalaci). Ověření pak musí proběhnout vždy ručně. Je tam ale možné zajistit oboustrannou autorizaci RSA klíči a podobně. V tomhle směru je SSH výrazně univerzálnější.
Uff, náročný úkol. Stačí to tak?