Кіріспе

Secure Shell (SSH) – ашық кілт криптографиясын пайдалана отырып, желідегі компьютерге қауіпсіз қашықтан кіруге мүмкіндік беретін протокол. SSH клиенттік бағдарламалары (мысалы, OpenSSH-тен ssh) әдетте қашықтан кіру сессиясының барысында жұмыс істейді және пайдаланушының жеке кілтін пайдаланушының бас каталогындағы файлда (мысалы, ssh/id_rsa) іздеу үшін конфигурацияланады. Қосымша қауіпсіздік үшін (мысалы, жергілікті файлдық жүйедегі кез келген файлды оқи алатын шабуылшыға қарсы) жеке кілтті шифрланған түрде сақтау қалыпты жағдай, онда шифрлау кілті пайдаланушы жадында сақтаған құпия сөзден есептеледі. Құпия сөзді енгізу қиындық тудырғандықтан, көптеген пайдаланушылар оны жергілікті кіру сессиясы үшін бір рет қана енгізуді қалайды. Шифрланбаған кілтті сақтаудың ең қауіпсіз орны – бағдарлама жады, ал Unix сияқты операциялық жүйелерде жад әдетте процеске байланысты болады. SSH клиенттік процесі шифрланбаған кілтті сақтау үшін қолданылмайды, себебі SSH клиенттік процестері тек қашықтан кіру сессиясының барысында ғана жұмыс істейді. Сондықтан пайдаланушылар ssh агенті деп аталатын бағдарламаны іске қосады, ол жергілікті кіру сессиясының барысынан асып түседі, шифрланбаған кілттерді жадыда сақтайды және Unix домендік сокеті арқылы SSH клиенттерімен байланыс жасайды.

Қауіпсіздік мәселелері

ssh агенті сокет құрайды, содан кейін ssh-ден келетін қосылымдарды тексереді. Осы сокетке қосыла алатын кез келген адам ssh агентіне қол жеткізе алады. Рұқсаттар әдеттегі Linux немесе Unix жүйесіндегідей орнатылады. Агент іске қосылғанда /tmp каталогында шектеулі рұқсаттары бар жаңа каталог жасалады. Сокет осы каталогта орналасқан. Зыянды бағдарламаның ssh агенті сокетін пайдалануына жол бермейтін процедура бар. Егер кілттер ssh агентіне импортталатын кезде ssh add -c опциясы қойылса, ssh қосылуға тырысқан сайын агент SSH ASKPASS ортасының айнымалысымен көрсетілген бағдарлама арқылы пайдаланушыдан растау сұрайды. Ssh агенттерін сіз қосылған серверге "жеткізуге" болады, бұл олардың кілттерін басқа қосылымдар үшін де қолжетімді етеді. Жергілікті жүйеде түбір пайдаланушының сенімді болуы маңызды, себебі түбір пайдаланушы басқа нәрселермен қатар кілт файлын тікелей оқи алады. Ал қашық жүйеде, егер ssh агентінің қосылымы жеткізілсе, екінші жақтағы түбір пайдаланушының да сенімді болуы маңызды, себебі ол қашықтағы агенттік сокетке кіре алады (бірақ кілт емес, ол жергілікті болып қалады).

Қолданылу

OpenSSH ssh агенті сияқты бірдей мүмкіндіктерді орындайтын көптеген бағдарламалар бар, олардың кейбіреулерінде өте әртүрлі пайдаланушы интерфейстері кездеседі. Мысалы, PuTTY өз құрамындағы Pageant ssh агентімен графикалық пайдаланушы интерфейсін пайдаланады. Симметриялық және асимметриялық кілттер үшін кілт агентінің функционалдығын ұсынатын құралдар да бар; олар көбінесе ssh агенті функционалдығын өз қолданба интерфейстерінің бірі ретінде ұсынады. GNOME Keyring және KWallet осыған мысалдар. Кейбір біртұтас SSH клиенттері сеанстар арасында SSH құпия сөздерін сақтау мүмкіндігін қамтиды. SecureCRT солардың қатарында.

Apple MacOS операциялық жүйесі

MacOS операциялық жүйесінде ssh агенті 2007 жылғы 10.5 нұсқасы Leopard-тан бастап енгізілген. Бұрын үшінші тараптың ашық кодты ssh агенттері қолданыста болған.

Microsoft Windows-тың жүйелік жүйесі

OpenSSH негізіндегі клиенттік және серверлік бағдарламалар Windows 10-ның 1803 нұсқасынан бастап қосылған. SSH клиенті және кілт агенті әдепкі бойынша қосылып, қолжетімді, ал SSH сервері – талап бойынша орнатылатын қосымша мүмкіндік.