Secure Shell, SSH (англ. Secure Shell — «безпечна оболонка») — мережевий протокол прикладного рівня, що дозволяє проводити віддалене управління комп'ютером і тунелювання TCP-з'єднань (наприклад, для передачі файлів). Схожий за функціональністю з протоколом Telnet і rlogin, проте шифрує весь трафік, включаючи процес аутентифікацій та передачу паролів та секретів. SSH це клієнт-серверний протокол. Програмне забезпечення яке реалізує як клієнтську, так і серверну частину реалізовано для всіх дуже широкого діапазону сучасних операційних систем. Для UNIX-like операційних систем протокол SSH вважається стандартом віддаленого адміністрування.
SSH | |
Дата створення / заснування | 1995 |
---|---|
Похідна робота | SFTP, SCP і Ssh-keygen |
Творець | Тату Ілонен |
Ліцензія | GNU Lesser General Public License |
Порт | 22[1], 22[1] і 22[1] |
|
Ця стаття потребує істотної переробки. (1 листопада 2021) |
Ця стаття є сирим з іншої мови. Можливо, вона створена за допомогою машинного перекладу або перекладачем, який недостатньо володіє обома мовами. (листопад 2013) |
Протокол SSH окрім основного призначення - безпечного віддаленого доступу до комп'ютера, та передачі файлів, володіє потужними можливостями тунелювання, через зашифрований канал SSH можна передавати інші дані, інкапсулюючи їх у TCP-з'єднання. Основні можливості це проксування локальних та віддалених TCP-портів (Port Forwarding), тунелювання дисплею для графічних застосунків при використанні X Window System (X Tunnelling). Можливо навіть передавати звук через шифрований канал, втім SSH може використовуватися для тунелювання будь-якого іншого мережевого протоколу, який може бути представлений у вигляді TCP-з'єднання.
Стандарти та програмні реалізації
Версія 1
Широкий розвиток сніферів створив проблему утиліт rlogin, telnet і rsh у зв'язку з тим що протокол телнет прозорий, що вимагало вирішення проблеми безпечного використання програмного забезпечення для віддаленого адміністрування.
Перша версія протоколу, SSH, була розроблена в 1995 році дослідником Тату Ілоненом з Технологічного університету Гельсінкі, Фінляндія. SSH був написаний для забезпечення більшої конфіденційності ніж telnet. Для свого проєкту він запросив у IANA tcp-порт 22, тому що той знаходиться між 21 для ftp та 23 для telnet.
Перша версія вийшла в реліз в липні 1996 як безкоштовне програмне забезпечення , та швидко отримала популярність. В грудні 1995 року Ілонен заснував SSH Communication Security (SCS) для розробки SSH. Оригінальна перша версія використовувала вільне програмне забезпечення, наприклад GNU libgmp, проте SSH Communication Security замінив такі бібліотеки щоб розробляти власницьке програмне забезпечення.
Протокол набув ще більшої популярності, і до 2000 року у нього було близько двох мільйонів користувачів.
Версія 2
В 1996 році SCS розробив версію протоколу SSH-2, яка містить нові алгоритми, та вирішувала деякі архітектурні проблеми першої версії SSH-1, проте SSH-2 була не була сумісна з версією SSH-1. Ілонен описує та пропонує SSH-1 інженерній групі з питань інтернету (IETF), а в 1996 SCS пропонує SSH2. У відповідь IETF створює робочу групу SECSH.
В 1998 році SCS випускає програмний продукт SSH Secure Shell (SSH2) на базі протоколу SSH-2, проте перехід відбувається повільно тому що користувачі не розуміють чим він краще, а також деяких користувачам заважають проприєтарні умови ліцензування програмного продукту. Проте коли проект OpenBSD реалізує версію протоколу SSH2 - OpenSSH під вільною ліцензією, то він портується на інші UNIX-подібні операційні системи та швидко завойовує популярність.
У 2006 році протокол SSH2 був затверджений робочою групою IETF як Інтернет-стандарт. Ця версія не сумісна з SSH-1, але має покращену безпеку та нові можливості. Дизайн протокол почав використовувати поліпшену багатошарову архітектуру, в якій протокол розділений на окремі рівні, подібно до протоколу ISO/OSI. Підтримуються нові механізми обміну ключами по протоколу Діффі-Геллмана, покращена цілісність, завдяки MAC-підписам. Нові можливості SSH-2 передбачають можливість отримувати декілька віртуальних терміналів на одному SSH з'єднанні.
Версія 1.99
У січні 2006 року, вже після затвердження та впровадження SSH-2 версії 2.1 був створений RFC 4253. Його мета забезпечення зворотної сумісності старим клієнтам для роботи з сервером, що підтримує протокол SSH-2, в такому випадку сервер себе позначає що версія протоколу 1.99.
OpenSSH і OSSH
У 1999 році розробники, бажали повернутися до старої 1.2.12 реалізовуючи оригінальну SSH програму, яка була останньою випущена під з відкритим вихідним кодом ліцензію. OSSH Björn Grönvall згодом почав розвиватися з цього коду.
Відомі вразливості
У 1998 році була описана вразливість в SSH 1.5. Вона дозволяла несанкціоновану вставки даних в зашифрованому потоці SSH через недостатню цілісності даних захист від використовується в даній версії протоколу..
У січні 2001 року була виявлена уразливість, яка дозволяє зловмисникові змінювати останній блок IDEA. Зашифровані сесії У тому ж місяці, інша уразливість була виявлена, що дозволяло шкідлививому серверу пересилання автентифікації клієнта на інший сервер.
Так як SSH-1 притаманні недоліки дизайну, які роблять його вразливим, в даний час він вважається застарілим і його слід уникати, відключивши повернення до SSH-1. Більшість сучасних серверів і клієнтів підтримують SSH-2.
У листопаді 2008 року теоретичну вразливість була виявлена для всіх версій SSH, який дозволив відновлення до 32 біт відкритого тексту з блоку зашифрованого тексту, зашифрованого за допомогою тодішнього стандартного режиму шифрування за умовчанням.
Сервери
- BSD
- OpenSSH
- Linux
- dropbear, lsh-server, openssh-server, ssh
- Windows
- freeSSHd, copssh, WinSSHD, KpyM Telnet / SSH Server, MobaSSH, OpenSSH через Cygwin, DenWer
Клієнти та оболонки
- (GNU/Linux), *BSD: , lsh-client, openssh-client, putty, ssh, Vinagre
- MS Windows і Windows NT: PuTTY, SecureCRT, , , ZOC, , ,
- MS Windows Mobile: PocketPuTTy, mToken, sshCE, PocketTTY, OpenSSH, PocketConsole
- Mac OS: NiftyTelnet SSH
- Symbian OS: PuTTY
- Java: ,
- J2ME:
- iOS: , ssh (в комплекті з Terminal)
- Android:
- Blackberry: BBSSH
- Maemo 5: OpenSSH
Використання
Цей розділ потребує доповнення. |
Приклади
Команда підключення до локального SSH-сервера з командного рядка GNU/Linux або FreeBSD для користувача user (сервер прослуховує нестандартний порт 30000):
$ ssh -p 30000 user@127.0.0.1
Генерація пари ключів (в UNIX-подібних ОС) здійснюється командою
$ ssh-keygen
Генерація пари SSH-2 RSA-ключів довжиною 4096 біта програмою puttygen під UNIX-подібними ОС:
$ puttygen -t rsa -b 4096 -o sample
Деякі клієнти, наприклад, PuTTY, мають і графічний інтерфейс користувача.
Для використання SSH в Python існують такі модулі, як python-paramiko і python-twisted-conch.
Передача файлів з використанням SSH
Є кілька механізмів передачі файлів за допомогою захищених протоколів Shell.
- Secure Copy (SCP), реалізація через проткол SSH
- Rsync - прикладний протокол та програмне забезпечення для копіювання файлів, з гнучкою системою синхронізації файлів та каталогів. Може використовувати SSH в якості аутентифікації та транспортного протоколу.
- SSH File Transfer Protocol (SFTP) - безпечна альтернатива FTP (не плутати з (FTP через SSH))
- fish - програма яка реалізує передачу файлів за допомогою оболонки через SSH (англ. Files transferred over shell protocol). Використовується в Midnight Commander та інших.
SSH-тунелювання
SSH-тунель — це тунель, який створюється за допомогою SSH-з'єднання і використовується для шифрування тунельованих даних. Використовується для того, щоб убезпечити передачу даних в Інтернеті (аналогічне призначення має IPsec). Особливість полягає в тому, що незашифрований трафік будь-якого протоколу шифрується на одному кінці SSH-з'єднання і розшифровується на іншому.
Практична реалізація може виконуватися декількома способами:
- Створенням Socks-проксі для програм, які не вміють працювати через SSH-тунель, але можуть працювати через Socks-проксі
- Використанням додатків, які вміють працювати через SSH-тунель.
- Створенням VPN-тунелю, підходить практично для будь-яких додатків.
Якщо програма працює з одним певним сервером, можна налаштувати SSH-клієнт таким чином, щоб він пропускав через SSH-тунель TCP-з'єднання, що приходять на певний TCP-порт машини, на якій запущений SSH-клієнт. Наприклад, клієнти Jabber підключаються по замовчуванню на порт 443. Тоді, щоб налаштувати підключення до сервера Jabber через SSH-тунель, SSH-клієнт налаштовується на перенаправлення підключень з будь-якого порту локальної машини (наприклад, з порту 4430) на віддалений сервер (наприклад, jabber.example.com і порт 443):
$ ssh -L 4430:jabber.example.com:443 somehost
В даному випадку Jabber-клієнт налаштовується на підключення до порту 4430 сервера localhost (якщо ssh-клієнт запущений на тій же машині що і Jabber-клієнт).
Для створення ssh-тунелю необхідна машина з запущеним ssh-сервером і доступом до jabber.example.com. Така конфігурація може використовуватися у випадку, якщо з локальної машини доступ до jabber.example.com закритий фаєрволом, але є доступ до деякого ssh-серверу, у якого обмеження доступу в Інтернет відсутні.
Безпека застосування
Поради щодо безпеки використання SSH:
- Заборона віддаленого root-доступу.
- Заборона підключення з порожнім паролем або відключення входу по паролю.
- Вибір нестандартного порту для SSH-сервера.
- Використання довгих SSH2 RSA-ключів (2048 біт і більше). Системи шифрування на основі RSA вважаються надійними, якщо довжина ключа не менше 1024 біт.
- Обмеження списку IP-адрес, з яких дозволений доступ (наприклад, настроюванням фаєрвола).
- Заборона доступу з деяких потенційно небезпечних адрес.
- Відмова від використання поширених або широко відомих системних логінів для доступу по SSH.
- Регулярний перегляд повідомлень про помилки автентифікації.
- Установка систем виявлення вторгнень (IDS — Intrusion Detection System).
- Використання пасток, підроблюють SSH-сервіс (honeypots).
Архітектура
![image](https://www.wikidata.uk-ua.nina.az/image/aHR0cHM6Ly93d3cud2lraWRhdGEudWstdWEubmluYS5hei9pbWFnZS9hSFIwY0hNNkx5OTFjR3h2WVdRdWQybHJhVzFsWkdsaExtOXlaeTkzYVd0cGNHVmthV0V2WTI5dGJXOXVjeTkwYUhWdFlpOHdMekJtTDFOemFGOWlhVzVoY25sZmNHRmphMlYwWDJGc2RDNXpkbWN2TWpVd2NIZ3RVM05vWDJKcGJtRnllVjl3WVdOclpYUmZZV3gwTG5OMlp5NXdibWM9LnBuZw==.png)
SSH-2 протокол має внутрішню архітектуру (визначено в RFC 4251) з чітко розділеними шарами. До них належать:
- Транспортний шар (RFC 4253). Цей шар обробляє початковий обмін ключами, автентифікує сервер, встановлює шифрування, стиснення і перевірку цілісності даних. Він надає у вищий шар інтерфейс для відправлення та отримання текстових пакетів розміром до 32768 байт кожен (цей розмір може бути збільшений в певній реалізації). Транспортний рівень також організовує повторний обмін ключами. Як правило, це відбувається після передачі 1 Гб даних або коли пройшла 1 година, що швидше настане.
- Шар автентифікації користувача (RFC 4252). Цей шар обробляє перевірку автентичності клієнта і надає ряд методів автентифікації. Автентифікація є клієнто-орієнтованою: коли користувач отримує запит на введення пароля, то це може бути запит SSH клієнта, а не сервера. Сервер просто відповідає на запити клієнта про автентифікацію. Широко вживані методи автентифікації користувачів включають наступне:
- парольна автентифікація: Самий простий метод пароль автентифікації за допомогою перевірки пароля. Підтримується також механізм який дозволяє змінити пароль, але не всі клієнтські програми реалізовують цей механізм.
- публічний ключ: використовує криптографію з відкритим ключем. В якості криптографічних алгоритмів раніше використовувались DSA. RSA має проблеми але все ще залишається популярним на 2024 рік, хоча витісняється ecdsa, ed25519, ed448. Також існують реалізації що підтримують X.509 сертифікати.
- інтерактивний метод (RFC 4256): універсальний, схожий на парольний, метод, коли сервер запитує інформацію, а клієнт відповідає. В якості відповіді може бути одноразовий пароль автентифікації. Цей метод використовується в зв'язці з PAM, для додаткової автентифікації після успішного вводу пароля. (Багатофакторна автентифікація).
- GSS-API методи автентифікації: які забезпечують додаткові схеми для автентифікації з використанням зовнішніх механізмів, таких як Kerberos 5 або NTLM, забезпечуючи можливість Single Sign On на підприємстві.
- Шар з'єднань (RFC 4254). Цей шар визначає поняття каналів, запитів для каналів та глобальних запитів. Одне з'єднання по SSH може включати декілька одночасних логічних каналів, в кожному з яких можна передавати дані в обох напрямках. Запити для каналів використовуються для передачі даних, специфічних для каналу, наприклад, зміни розміру буфера терміналу або коду завершення процесу на сервері. Кожен канал також керує потоком даних, використовуючи розмір буфера приймаючої сторони. Клієнт SSH може запросити перенаправлення порту на сервері через глобальний запит. Типи каналів:
- shell використовується для віддалених терміналів, SFTP та запитів на виконання команд (у тому числі SCP передач)
- direct-tcpip використовується для TCP-з'єднань що передаються з клієнта на сервер
- forwarded-tcpip використовується для TCP-з'єднань що передаються з сервера на клієнт
Відбитки публічного ключа
Окрім захисту сервера від неавторизованого користувача різноманітними методами аутентифікації, клієнт також має систему, яка запам'ятовує "відбитки публічних ключів" (ssh fingerprint) в файлі known_hosts, який містить адресу сервера, алгоритми ключа та SHA-1 хеш від публічного ключа.
Існує SSHFP DNS-запис (RFC 4255) пропонує перевіряти відбитки публічних ключів, також описує формат запису для зберігання в DNS.
Поліпшення
Вони призначені для підвищення продуктивності продуктів SSH:
- SSH-over-SCTP: підтримка SCTP, а не TCP, як зв'язок орієнтований протокол транспортного рівня
- ECDSA: підтримка еліптичної кривої DSA, а не DSA або RSA для підписання
- ECDH: підтримка для еліптичних кривих Діффі-Хеллмана, а не просто Діффі-Хеллмана для шифрування обміну ключами.
- : підтримка UMAC, а не HMAC для MAC / цілісності
Примітки
- Service Name and Transport Protocol Port Number Registry — IANA.
- Amies A, Wu C F, Wang G C, Criveti M (2012). Networking on the cloud [ 14 червня 2013 у Wayback Machine.] IBM developerWorks, June 21.
- The story of the SSH port is 22. www.ssh.com (англ.). Процитовано 8 квітня 2024.
- History of SSH - SSH, The Secure Shell: The Definitive Guide, 2nd Edition [Book]. www.oreilly.com (англ.). Процитовано 8 квітня 2024.
- Secure Shell (secsh). datatracker.ietf.org (англ.). Процитовано 8 квітня 2024.
- O'Reily: Secure Shell, The Definitive Guide
- . Архів оригіналу за 1 жовтня 2017. Процитовано 4 березня 2013.
- RFC 4253, section 5. Compatibility With Old SSH Versions . Архів оригіналу за 1 березня 2018. Процитовано 13 травня 2022.
{{}}
: Обслуговування CS1: bot: Сторінки з посиланнями на джерела, де статус оригінального URL невідомий () Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (), IETF - . Архів оригіналу за 8 липня 2011. Процитовано 4.3.2013.
- Weak CRC allows packet injection into SSH sessions encrypted with block ciphers [ 5 березня 2018 у Wayback Machine.], US-CERT
- Weak CRC allows last block of IDEA-encrypted SSH packet to be changed without notice [ 5 березня 2018 у Wayback Machine.], US-CERT
- SSH-1 allows client authentication to be forwarded by a malicious server to another server [ 31 грудня 2017 у Wayback Machine.], US-CERT
- SSH CBC vulnerability [ 6 вересня 2017 у Wayback Machine.], US-CERT
- Seggelmann, R.; Tuxen, M.; Rathgeb, E.P. (18–20 July 2012). SSH over SCTP — Optimizing a multi-channel protocol by adapting it to SCTP. Communication Systems, Networks & Digital Signal Processing (CSNDSP), 2012 8th International Symposium on: 1—6. doi:10.1109/CSNDSP.2012.6292659.
- Stebila, D.; Green J. (December 2009). . Архів оригіналу за 19 липня 2012. Процитовано 12 листопада 2012.
- Miller, D.; Valchev, P. (3 вересня 2007). . Архів оригіналу за 19 серпня 2014. Процитовано 12 листопада 2012.
Див. також
- — доступ до SSH сервер за допомогою стандартних веббраузерів
- — інструмент для підтримки постійного зв'язку SSH, його перезапуск при необхідності
- [en] — інструмент, який дозволяє користувачеві запускати SSH на HTTPS proxy servers
- Криптографія з відкритим ключем
- PuTTY
- Telnet
- Ssh-keygen
- OpenSSH
Посилання
- Стара домашня сторінка робочої групи «secsh» IETF [ 3 липня 2013 у Wayback Machine.]
- SSH протоколи [ 12 квітня 2018 у Wayback Machine.]
Стандарти
- RFC 4250 (англ.) — The Secure Shell (SSH) Protocol Assigned Numbers
- RFC 4251 (англ.) — The Secure Shell (SSH) Protocol Architecture
- RFC 4252 (англ.) — The Secure Shell (SSH) Authentication Protocol
- RFC 4253 (англ.) — The Secure Shell (SSH) Transport Layer Protocol
- RFC 4254 (англ.) — The Secure Shell (SSH) Connection Protocol
- RFC 4255 (англ.) — Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints
- RFC 4256 (англ.) — Generic Message Exchange Authentication for the Secure Shell Protocol (SSH)
- RFC 4335 (англ.) — The Secure Shell (SSH) Session Channel Break Extension
- RFC 4344 (англ.) — The Secure Shell (SSH) Transport Layer Encryption Modes
- RFC 4345 (англ.) — Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol
- RFC 4419 (англ.) — Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol
- RFC 4432 (англ.) — RSA Key Exchange for the Secure Shell (SSH) Transport Layer Protocol
- RFC 4462 (англ.) — Generic Security Service Application Program Interface (GSS-API) Authentication and Key Exchange for the Secure Shell (SSH) Protocol
- RFC 4716 (англ.) — The Secure Shell (SSH) Public Key File Format
- RFC 5656 (англ.) — Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer
![]() | Це незавершена стаття про програмне забезпечення. Ви можете проєкту, виправивши або дописавши її. |
![]() | Це незавершена стаття про комп'ютерні мережі. Ви можете проєкту, виправивши або дописавши її. |
Ця стаття містить текст, що не відповідає . (вересень 2012) |
Ця стаття є сирим з іншої мови. Можливо, вона створена за допомогою машинного перекладу або перекладачем, який недостатньо володіє обома мовами. (листопад 2013) |
Цю статтю потрібно повністю переписати відповідно до Вікіпедії. (липень 2017) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Secure Shell SSH angl Secure Shell bezpechna obolonka merezhevij protokol prikladnogo rivnya sho dozvolyaye provoditi viddalene upravlinnya komp yuterom i tunelyuvannya TCP z yednan napriklad dlya peredachi fajliv Shozhij za funkcionalnistyu z protokolom Telnet i rlogin prote shifruye ves trafik vklyuchayuchi proces autentifikacij ta peredachu paroliv ta sekretiv SSH ce kliyent servernij protokol Programne zabezpechennya yake realizuye yak kliyentsku tak i servernu chastinu realizovano dlya vsih duzhe shirokogo diapazonu suchasnih operacijnih sistem Dlya UNIX like operacijnih sistem protokol SSH vvazhayetsya standartom viddalenogo administruvannya SSHData stvorennya zasnuvannya1995Pohidna robotaSFTP SCP i Ssh keygenTvorecTatu IlonenLicenziyaGNU Lesser General Public LicensePort22 1 22 1 i 22 1 SSH u VikishovishiCya stattya potrebuye istotnoyi pererobki Mozhlivo yiyi neobhidno dopovniti perepisati abo vikifikuvati Poyasnennya prichin ta obgovorennya na storinci Vikipediya Statti sho neobhidno polipshiti Tomu hto dodav shablon zvazhte na te shob povidomiti osnovnih avtoriv statti pro neobhidnist polipshennya dodavshi do yihnoyi storinki obgovorennya takij tekst subst polipshiti avtoru SSH 1 listopada 2021 a takozh ne zabudte opisati prichinu nominaciyi na pidstorinci Vikipediya Statti sho neobhidno polipshiti za vidpovidnij den 1 listopada 2021 Cya stattya ye sirim perekladom z inshoyi movi Mozhlivo vona stvorena za dopomogoyu mashinnogo perekladu abo perekladachem yakij nedostatno volodiye oboma movami Bud laska dopomozhit polipshiti pereklad listopad 2013 Protokol SSH okrim osnovnogo priznachennya bezpechnogo viddalenogo dostupu do komp yutera ta peredachi fajliv volodiye potuzhnimi mozhlivostyami tunelyuvannya cherez zashifrovanij kanal SSH mozhna peredavati inshi dani inkapsulyuyuchi yih u TCP z yednannya Osnovni mozhlivosti ce proksuvannya lokalnih ta viddalenih TCP portiv Port Forwarding tunelyuvannya displeyu dlya grafichnih zastosunkiv pri vikoristanni X Window System X Tunnelling Mozhlivo navit peredavati zvuk cherez shifrovanij kanal vtim SSH mozhe vikoristovuvatisya dlya tunelyuvannya bud yakogo inshogo merezhevogo protokolu yakij mozhe buti predstavlenij u viglyadi TCP z yednannya Standarti ta programni realizaciyiVersiya 1 Shirokij rozvitok sniferiv stvoriv problemu utilit rlogin telnet i rsh u zv yazku z tim sho protokol telnet prozorij sho vimagalo virishennya problemi bezpechnogo vikoristannya programnogo zabezpechennya dlya viddalenogo administruvannya Persha versiya protokolu SSH bula rozroblena v 1995 roci doslidnikom Tatu Ilonenom z Tehnologichnogo universitetu Gelsinki Finlyandiya SSH buv napisanij dlya zabezpechennya bilshoyi konfidencijnosti nizh telnet Dlya svogo proyektu vin zaprosiv u IANA tcp port 22 tomu sho toj znahoditsya mizh 21 dlya ftp ta 23 dlya telnet Persha versiya vijshla v reliz v lipni 1996 yak bezkoshtovne programne zabezpechennya ta shvidko otrimala populyarnist V grudni 1995 roku Ilonen zasnuvav SSH Communication Security SCS dlya rozrobki SSH Originalna persha versiya vikoristovuvala vilne programne zabezpechennya napriklad GNU libgmp prote SSH Communication Security zaminiv taki biblioteki shob rozroblyati vlasnicke programne zabezpechennya Protokol nabuv she bilshoyi populyarnosti i do 2000 roku u nogo bulo blizko dvoh miljoniv koristuvachiv Versiya 2 V 1996 roci SCS rozrobiv versiyu protokolu SSH 2 yaka mistit novi algoritmi ta virishuvala deyaki arhitekturni problemi pershoyi versiyi SSH 1 prote SSH 2 bula ne bula sumisna z versiyeyu SSH 1 Ilonen opisuye ta proponuye SSH 1 inzhenernij grupi z pitan internetu IETF a v 1996 SCS proponuye SSH2 U vidpovid IETF stvoryuye robochu grupu SECSH V 1998 roci SCS vipuskaye programnij produkt SSH Secure Shell SSH2 na bazi protokolu SSH 2 prote perehid vidbuvayetsya povilno tomu sho koristuvachi ne rozumiyut chim vin krashe a takozh deyakih koristuvacham zavazhayut propriyetarni umovi licenzuvannya programnogo produktu Prote koli proekt OpenBSD realizuye versiyu protokolu SSH2 OpenSSH pid vilnoyu licenziyeyu to vin portuyetsya na inshi UNIX podibni operacijni sistemi ta shvidko zavojovuye populyarnist U 2006 roci protokol SSH2 buv zatverdzhenij robochoyu grupoyu IETF yak Internet standart Cya versiya ne sumisna z SSH 1 ale maye pokrashenu bezpeku ta novi mozhlivosti Dizajn protokol pochav vikoristovuvati polipshenu bagatosharovu arhitekturu v yakij protokol rozdilenij na okremi rivni podibno do protokolu ISO OSI Pidtrimuyutsya novi mehanizmi obminu klyuchami po protokolu Diffi Gellmana pokrashena cilisnist zavdyaki MAC pidpisam Novi mozhlivosti SSH 2 peredbachayut mozhlivist otrimuvati dekilka virtualnih terminaliv na odnomu SSH z yednanni Versiya 1 99 U sichni 2006 roku vzhe pislya zatverdzhennya ta vprovadzhennya SSH 2 versiyi 2 1 buv stvorenij RFC 4253 Jogo meta zabezpechennya zvorotnoyi sumisnosti starim kliyentam dlya roboti z serverom sho pidtrimuye protokol SSH 2 v takomu vipadku server sebe poznachaye sho versiya protokolu 1 99 OpenSSH i OSSH U 1999 roci rozrobniki bazhali povernutisya do staroyi 1 2 12 realizovuyuchi originalnu SSH programu yaka bula ostannoyu vipushena pid z vidkritim vihidnim kodom licenziyu OSSH Bjorn Gronvall zgodom pochav rozvivatisya z cogo kodu Vidomi vrazlivosti U 1998 roci bula opisana vrazlivist v SSH 1 5 Vona dozvolyala nesankcionovanu vstavki danih v zashifrovanomu potoci SSH cherez nedostatnyu cilisnosti danih zahist vid vikoristovuyetsya v danij versiyi protokolu U sichni 2001 roku bula viyavlena urazlivist yaka dozvolyaye zlovmisnikovi zminyuvati ostannij blok IDEA Zashifrovani sesiyi U tomu zh misyaci insha urazlivist bula viyavlena sho dozvolyalo shkidlivivomu serveru peresilannya avtentifikaciyi kliyenta na inshij server Tak yak SSH 1 pritamanni nedoliki dizajnu yaki roblyat jogo vrazlivim v danij chas vin vvazhayetsya zastarilim i jogo slid unikati vidklyuchivshi povernennya do SSH 1 Bilshist suchasnih serveriv i kliyentiv pidtrimuyut SSH 2 U listopadi 2008 roku teoretichnu vrazlivist bula viyavlena dlya vsih versij SSH yakij dozvoliv vidnovlennya do 32 bit vidkritogo tekstu z bloku zashifrovanogo tekstu zashifrovanogo za dopomogoyu todishnogo standartnogo rezhimu shifruvannya za umovchannyam Serveri BSD OpenSSH Linux dropbear lsh server openssh server ssh Windows freeSSHd copssh WinSSHD KpyM Telnet SSH Server MobaSSH OpenSSH cherez Cygwin DenWerKliyenti ta obolonki GNU Linux BSD lsh client openssh client putty ssh Vinagre MS Windows i Windows NT PuTTY SecureCRT ZOC MS Windows Mobile PocketPuTTy mToken sshCE PocketTTY OpenSSH PocketConsole Mac OS NiftyTelnet SSH Symbian OS PuTTY Java J2ME iOS ssh v komplekti z Terminal Android Blackberry BBSSH Maemo 5 OpenSSHVikoristannyaCej rozdil potrebuye dopovnennya Prikladi Komanda pidklyuchennya do lokalnogo SSH servera z komandnogo ryadka GNU Linux abo FreeBSD dlya koristuvacha user server prosluhovuye nestandartnij port 30000 ssh p 30000 user 127 0 0 1 Generaciya pari klyuchiv v UNIX podibnih OS zdijsnyuyetsya komandoyu ssh keygen Generaciya pari SSH 2 RSA klyuchiv dovzhinoyu 4096 bita programoyu puttygen pid UNIX podibnimi OS puttygen t rsa b 4096 o sample Deyaki kliyenti napriklad PuTTY mayut i grafichnij interfejs koristuvacha Dlya vikoristannya SSH v Python isnuyut taki moduli yak python paramiko i python twisted conch Peredacha fajliv z vikoristannyam SSH Ye kilka mehanizmiv peredachi fajliv za dopomogoyu zahishenih protokoliv Shell Secure Copy SCP realizaciya cherez protkol SSH Rsync prikladnij protokol ta programne zabezpechennya dlya kopiyuvannya fajliv z gnuchkoyu sistemoyu sinhronizaciyi fajliv ta katalogiv Mozhe vikoristovuvati SSH v yakosti autentifikaciyi ta transportnogo protokolu SSH File Transfer Protocol SFTP bezpechna alternativa FTP ne plutati z FTP cherez SSH fish programa yaka realizuye peredachu fajliv za dopomogoyu obolonki cherez SSH angl Files transferred over shell protocol Vikoristovuyetsya v Midnight Commander ta inshih SSH tunelyuvannya SSH tunel ce tunel yakij stvoryuyetsya za dopomogoyu SSH z yednannya i vikoristovuyetsya dlya shifruvannya tunelovanih danih Vikoristovuyetsya dlya togo shob ubezpechiti peredachu danih v Interneti analogichne priznachennya maye IPsec Osoblivist polyagaye v tomu sho nezashifrovanij trafik bud yakogo protokolu shifruyetsya na odnomu kinci SSH z yednannya i rozshifrovuyetsya na inshomu Praktichna realizaciya mozhe vikonuvatisya dekilkoma sposobami Stvorennyam Socks proksi dlya program yaki ne vmiyut pracyuvati cherez SSH tunel ale mozhut pracyuvati cherez Socks proksi Vikoristannyam dodatkiv yaki vmiyut pracyuvati cherez SSH tunel Stvorennyam VPN tunelyu pidhodit praktichno dlya bud yakih dodatkiv Yaksho programa pracyuye z odnim pevnim serverom mozhna nalashtuvati SSH kliyent takim chinom shob vin propuskav cherez SSH tunel TCP z yednannya sho prihodyat na pevnij TCP port mashini na yakij zapushenij SSH kliyent Napriklad kliyenti Jabber pidklyuchayutsya po zamovchuvannyu na port 443 Todi shob nalashtuvati pidklyuchennya do servera Jabber cherez SSH tunel SSH kliyent nalashtovuyetsya na perenapravlennya pidklyuchen z bud yakogo portu lokalnoyi mashini napriklad z portu 4430 na viddalenij server napriklad jabber example com i port 443 ssh L 4430 jabber example com 443 somehost V danomu vipadku Jabber kliyent nalashtovuyetsya na pidklyuchennya do portu 4430 servera localhost yaksho ssh kliyent zapushenij na tij zhe mashini sho i Jabber kliyent Dlya stvorennya ssh tunelyu neobhidna mashina z zapushenim ssh serverom i dostupom do jabber example com Taka konfiguraciya mozhe vikoristovuvatisya u vipadku yaksho z lokalnoyi mashini dostup do jabber example com zakritij fayervolom ale ye dostup do deyakogo ssh serveru u yakogo obmezhennya dostupu v Internet vidsutni Bezpeka zastosuvannya Poradi shodo bezpeki vikoristannya SSH Zaborona viddalenogo root dostupu Zaborona pidklyuchennya z porozhnim parolem abo vidklyuchennya vhodu po parolyu Vibir nestandartnogo portu dlya SSH servera Vikoristannya dovgih SSH2 RSA klyuchiv 2048 bit i bilshe Sistemi shifruvannya na osnovi RSA vvazhayutsya nadijnimi yaksho dovzhina klyucha ne menshe 1024 bit Obmezhennya spisku IP adres z yakih dozvolenij dostup napriklad nastroyuvannyam fayervola Zaborona dostupu z deyakih potencijno nebezpechnih adres Vidmova vid vikoristannya poshirenih abo shiroko vidomih sistemnih loginiv dlya dostupu po SSH Regulyarnij pereglyad povidomlen pro pomilki avtentifikaciyi Ustanovka sistem viyavlennya vtorgnen IDS Intrusion Detection System Vikoristannya pastok pidroblyuyut SSH servis honeypots ArhitekturaDiagram of the SSH 2 binary packet SSH 2 protokol maye vnutrishnyu arhitekturu viznacheno v RFC 4251 z chitko rozdilenimi sharami Do nih nalezhat Transportnij shar RFC 4253 Cej shar obroblyaye pochatkovij obmin klyuchami avtentifikuye server vstanovlyuye shifruvannya stisnennya i perevirku cilisnosti danih Vin nadaye u vishij shar interfejs dlya vidpravlennya ta otrimannya tekstovih paketiv rozmirom do 32768 bajt kozhen cej rozmir mozhe buti zbilshenij v pevnij realizaciyi Transportnij riven takozh organizovuye povtornij obmin klyuchami Yak pravilo ce vidbuvayetsya pislya peredachi 1 Gb danih abo koli projshla 1 godina sho shvidshe nastane Shar avtentifikaciyi koristuvacha RFC 4252 Cej shar obroblyaye perevirku avtentichnosti kliyenta i nadaye ryad metodiv avtentifikaciyi Avtentifikaciya ye kliyento oriyentovanoyu koli koristuvach otrimuye zapit na vvedennya parolya to ce mozhe buti zapit SSH kliyenta a ne servera Server prosto vidpovidaye na zapiti kliyenta pro avtentifikaciyu Shiroko vzhivani metodi avtentifikaciyi koristuvachiv vklyuchayut nastupne parolna avtentifikaciya Samij prostij metod parol avtentifikaciyi za dopomogoyu perevirki parolya Pidtrimuyetsya takozh mehanizm yakij dozvolyaye zminiti parol ale ne vsi kliyentski programi realizovuyut cej mehanizm publichnij klyuch vikoristovuye kriptografiyu z vidkritim klyuchem V yakosti kriptografichnih algoritmiv ranishe vikoristovuvalis DSA RSA maye problemi ale vse she zalishayetsya populyarnim na 2024 rik hocha vitisnyayetsya ecdsa ed25519 ed448 Takozh isnuyut realizaciyi sho pidtrimuyut X 509 sertifikati interaktivnij metod RFC 4256 universalnij shozhij na parolnij metod koli server zapituye informaciyu a kliyent vidpovidaye V yakosti vidpovidi mozhe buti odnorazovij parol avtentifikaciyi Cej metod vikoristovuyetsya v zv yazci z PAM dlya dodatkovoyi avtentifikaciyi pislya uspishnogo vvodu parolya Bagatofaktorna avtentifikaciya GSS API metodi avtentifikaciyi yaki zabezpechuyut dodatkovi shemi dlya avtentifikaciyi z vikoristannyam zovnishnih mehanizmiv takih yak Kerberos 5 abo NTLM zabezpechuyuchi mozhlivist Single Sign On na pidpriyemstvi Shar z yednan RFC 4254 Cej shar viznachaye ponyattya kanaliv zapitiv dlya kanaliv ta globalnih zapitiv Odne z yednannya po SSH mozhe vklyuchati dekilka odnochasnih logichnih kanaliv v kozhnomu z yakih mozhna peredavati dani v oboh napryamkah Zapiti dlya kanaliv vikoristovuyutsya dlya peredachi danih specifichnih dlya kanalu napriklad zmini rozmiru bufera terminalu abo kodu zavershennya procesu na serveri Kozhen kanal takozh keruye potokom danih vikoristovuyuchi rozmir bufera prijmayuchoyi storoni Kliyent SSH mozhe zaprositi perenapravlennya portu na serveri cherez globalnij zapit Tipi kanaliv shell vikoristovuyetsya dlya viddalenih terminaliv SFTP ta zapitiv na vikonannya komand u tomu chisli SCP peredach direct tcpip vikoristovuyetsya dlya TCP z yednan sho peredayutsya z kliyenta na server forwarded tcpip vikoristovuyetsya dlya TCP z yednan sho peredayutsya z servera na kliyentVidbitki publichnogo klyucha Okrim zahistu servera vid neavtorizovanogo koristuvacha riznomanitnimi metodami autentifikaciyi kliyent takozh maye sistemu yaka zapam yatovuye vidbitki publichnih klyuchiv ssh fingerprint v fajli known hosts yakij mistit adresu servera algoritmi klyucha ta SHA 1 hesh vid publichnogo klyucha Isnuye SSHFP DNS zapis RFC 4255 proponuye pereviryati vidbitki publichnih klyuchiv takozh opisuye format zapisu dlya zberigannya v DNS PolipshennyaVoni priznacheni dlya pidvishennya produktivnosti produktiv SSH SSH over SCTP pidtrimka SCTP a ne TCP yak zv yazok oriyentovanij protokol transportnogo rivnya ECDSA pidtrimka eliptichnoyi krivoyi DSA a ne DSA abo RSA dlya pidpisannya ECDH pidtrimka dlya eliptichnih krivih Diffi Hellmana a ne prosto Diffi Hellmana dlya shifruvannya obminu klyuchami pidtrimka UMAC a ne HMAC dlya MAC cilisnostiPrimitkiService Name and Transport Protocol Port Number Registry IANA d Track Q30335969d Track Q242540 Amies A Wu C F Wang G C Criveti M 2012 Networking on the cloud 14 chervnya 2013 u Wayback Machine IBM developerWorks June 21 The story of the SSH port is 22 www ssh com angl Procitovano 8 kvitnya 2024 History of SSH SSH The Secure Shell The Definitive Guide 2nd Edition Book www oreilly com angl Procitovano 8 kvitnya 2024 Secure Shell secsh datatracker ietf org angl Procitovano 8 kvitnya 2024 O Reily Secure Shell The Definitive Guide Arhiv originalu za 1 zhovtnya 2017 Procitovano 4 bereznya 2013 RFC 4253 section 5 Compatibility With Old SSH Versions Arhiv originalu za 1 bereznya 2018 Procitovano 13 travnya 2022 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 bot Storinki z posilannyami na dzherela de status originalnogo URL nevidomij posilannya Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya IETF Arhiv originalu za 8 lipnya 2011 Procitovano 4 3 2013 Weak CRC allows packet injection into SSH sessions encrypted with block ciphers 5 bereznya 2018 u Wayback Machine US CERT Weak CRC allows last block of IDEA encrypted SSH packet to be changed without notice 5 bereznya 2018 u Wayback Machine US CERT SSH 1 allows client authentication to be forwarded by a malicious server to another server 31 grudnya 2017 u Wayback Machine US CERT SSH CBC vulnerability 6 veresnya 2017 u Wayback Machine US CERT Seggelmann R Tuxen M Rathgeb E P 18 20 July 2012 SSH over SCTP Optimizing a multi channel protocol by adapting it to SCTP Communication Systems Networks amp Digital Signal Processing CSNDSP 2012 8th International Symposium on 1 6 doi 10 1109 CSNDSP 2012 6292659 Stebila D Green J December 2009 Arhiv originalu za 19 lipnya 2012 Procitovano 12 listopada 2012 Miller D Valchev P 3 veresnya 2007 Arhiv originalu za 19 serpnya 2014 Procitovano 12 listopada 2012 Div takozh dostup do SSH server za dopomogoyu standartnih vebbrauzeriv instrument dlya pidtrimki postijnogo zv yazku SSH jogo perezapusk pri neobhidnosti en instrument yakij dozvolyaye koristuvachevi zapuskati SSH na HTTPS proxy servers Kriptografiya z vidkritim klyuchem PuTTY Telnet Ssh keygen OpenSSHPosilannyaStara domashnya storinka robochoyi grupi secsh IETF 3 lipnya 2013 u Wayback Machine SSH protokoli 12 kvitnya 2018 u Wayback Machine StandartiRFC 4250 angl The Secure Shell SSH Protocol Assigned Numbers RFC 4251 angl The Secure Shell SSH Protocol Architecture RFC 4252 angl The Secure Shell SSH Authentication Protocol RFC 4253 angl The Secure Shell SSH Transport Layer Protocol RFC 4254 angl The Secure Shell SSH Connection Protocol RFC 4255 angl Using DNS to Securely Publish Secure Shell SSH Key Fingerprints RFC 4256 angl Generic Message Exchange Authentication for the Secure Shell Protocol SSH RFC 4335 angl The Secure Shell SSH Session Channel Break Extension RFC 4344 angl The Secure Shell SSH Transport Layer Encryption Modes RFC 4345 angl Improved Arcfour Modes for the Secure Shell SSH Transport Layer Protocol RFC 4419 angl Diffie Hellman Group Exchange for the Secure Shell SSH Transport Layer Protocol RFC 4432 angl RSA Key Exchange for the Secure Shell SSH Transport Layer Protocol RFC 4462 angl Generic Security Service Application Program Interface GSS API Authentication and Key Exchange for the Secure Shell SSH Protocol RFC 4716 angl The Secure Shell SSH Public Key File Format RFC 5656 angl Elliptic Curve Algorithm Integration in the Secure Shell Transport LayerCe nezavershena stattya pro programne zabezpechennya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Ce nezavershena stattya pro komp yuterni merezhi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Cya stattya mistit tekst sho ne vidpovidaye enciklopedichnomu stilyu Bud laska dopomozhit udoskonaliti cyu stattyu pogodivshi stil vikladu zi stilistichnimi pravilami Vikipediyi Mozhlivo storinka obgovorennya mistit zauvazhennya shodo potribnih zmin veresen 2012 Cya stattya ye sirim perekladom z inshoyi movi Mozhlivo vona stvorena za dopomogoyu mashinnogo perekladu abo perekladachem yakij nedostatno volodiye oboma movami Bud laska dopomozhit polipshiti pereklad listopad 2013 Cyu stattyu potribno povnistyu perepisati vidpovidno do standartiv yakosti Vikipediyi Vi mozhete dopomogti pererobivshi yiyi Mozhlivo storinka obgovorennya mistit zauvazhennya shodo potribnih zmin lipen 2017