Кіріспе
Secure Shell (SSH) – ашық кілт криптографиясын пайдалана отырып, желідегі компьютерге қауіпсіз қашықтан кіруге мүмкіндік беретін протокол. SSH клиенттік бағдарламалары (мысалы, OpenSSH-тен ssh) әдетте қашықтан кіру сессиясының барысында жұмыс істейді және пайдаланушының жеке кілтін пайдаланушының бас каталогындағы файлда (мысалы, ssh/id_rsa) іздеу үшін конфигурацияланады. Қосымша қауіпсіздік үшін (мысалы, жергілікті файлдық жүйедегі кез келген файлды оқи алатын шабуылшыға қарсы) жеке кілтті шифрланған түрде сақтау қалыпты жағдай, онда шифрлау кілті пайдаланушы жадында сақтаған құпия сөзден есептеледі. Құпия сөзді енгізу қиындық тудырғандықтан, көптеген пайдаланушылар оны жергілікті кіру сессиясы үшін бір рет қана енгізуді қалайды. Шифрланбаған кілтті сақтаудың ең қауіпсіз орны – бағдарлама жады, ал Unix сияқты операциялық жүйелерде жад әдетте процеске байланысты болады. SSH клиенттік процесі шифрланбаған кілтті сақтау үшін қолданылмайды, себебі SSH клиенттік процестері тек қашықтан кіру сессиясының барысында ғана жұмыс істейді. Сондықтан пайдаланушылар ssh агенті деп аталатын бағдарламаны іске қосады, ол жергілікті кіру сессиясының барысынан асып түседі, шифрланбаған кілттерді жадыда сақтайды және Unix домендік сокеті арқылы SSH клиенттерімен байланыс жасайды.
Secure Shell (SSH) is a protocol allowing secure remote login to a computer on a network using public key cryptography. SSH client programs (such as ssh from OpenSSH) typically run for the duration of a remote login session and are configured to look for the user's private key in a file in the user's home directory (e. g., ssh/id rsa). For added security (for instance, against an attacker that can read any file on the local filesystem), it is common to store the private key in an encrypted form, where the encryption key is computed from a passphrase that the user has memorized. Because typing the passphrase can be tedious, many users would prefer to enter it just once per local login session. The most secure place to store the unencrypted key is in program memory, and in Unix like operating systems, memory is normally associated with a process. A normal SSH client process cannot be used to store the unencrypted key because SSH client processes only last the duration of a remote login session. Therefore, users run a program called ssh agent that runs beyond the duration of a local login session, stores unencrypted keys in memory, and communicates with SSH clients using a Unix domain socket.
Қауіпсіздік мәселелері
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 сервері – талап бойынша орнатылатын қосымша мүмкіндік.