The Secure Shell | |
Информация | |
---|---|
SSH в Общомедия |
OSI модел |
---|
1. Физически слой |
2. Канален слой |
3. Мрежов слой |
4. Транспортен слой |
5. Сесиен слой |
6. Представителен слой |
7. Приложен слой |
SSH (на английски: Secure SHell – сигурна обвивка) е мрежов протокол, позволяващ криптирано предаване на данни. Разработен е от SSH Communications Security Ltd. Най-често се използва за изпълняване на команди на отдалечена машина, прехвърляне на файлове от една машина на друга и самото ѝ менажиране. Предоставя високо ниво на автентификация и сигурност по време на комуникацията между машините през незащитена връзка. Проектиран е да замести подобни протоколи, като например TELNET, rsh и rexec на Бъркли, rlogin, rcp, rdist.
Всеки път, когато от компютър се изпращат данни към мрежата, SSH автоматично ги криптира. След получаването им от крайния потребител, SSH отново автоматично ги декриптира. Този процес се нарича прозрачно криптиране (на английски: transparent encryption). Така потребителите могат да работят нормално, без да подозират, че техните съобщения се криптират, и така да ползват безопасно мрежата.
SSH използва клиент/сървър архитектура. На сървъра се инсталира SSH програма от системния администратор, която приема или отхвърля изпратените заявки от SSH клиент до самата нея. Всички заявки между клиента и сървъра са сигурно криптирани, за да не могат да бъдат модифицирани.
SSH може да бъде използван от машини с различна операционна система, като Windows, Unix, Macintonsh и OS/2.
SSH1 протоколът е разработен през 1995 от Тату Юльонен (на фински: Tatu Ylönen), изследовател в Техническия университет в Хелзинки, Финландия. След атака над университетската мрежа по-късно същата година, той решава да създаде SSH1 за лично ползване. Бета версията привлича огромен интерес и той решава, че може да се приложи неговия проект в по-мащабни размери.
През юли 1995, SSH1 е пуснат заедно с кода си за свободно разпространяване. До края на годината над 20 000 потребители от 50 държави използват SSH1. Юльонен получавал над 150 писма над ден с искане за помощ, като в отговор на този интерес той основава SSH Communications Security Corp.. Днес той е член на управителния съвет и технически съветник на компанията.
SSH1 протоколът имал някои недостатъци и ограничения и за това през 1996 е представен SSH2, който включвал нови алгоритми, но бил несъвместим със SSH1. Това било предпоставка за създаването на SECSH за стандартизиране на протокола и насочване на развитието му в полза на обществото. Въпреки това SSH2 не успява да замени напълно SSH1 – липсвали някои от възможностите при SSH1 и лицензът му за ползване бил по-ограничен. Това довело до по-слаба миграция на потребителите към SSH2 от SSH1, въпреки че е по-сигурен и по-добър протокол.
Появява се и OpenSSH, който представлява свободна реализация на SSH2 протокола, от OpenBSD проекта. Базиран е на последната свободна версия на SSH. Развива се бързо и става една от предпочитаните SSH реализации в света. Въпреки че много хора участват по този проект, най-голям принос има Маркус Фрийл (на английски: Markus Friel). Успява да бъде интегриран успешно за Linux, Solaris, AIX, MAC OS X и други операционни системи.
Днешно време има десетки SSH реализации, както безплатни, така и платени за почти всички платформи. Използва се от милиони хора за осигуряване на тяхната сигурност при комуникация.
Сървър:
Клиент
Сесия
Ключ
Име | Времетраене | Създаден от | Тип | Предназначение |
---|---|---|---|---|
Потребителски ключ | Постоянен | Потребител | Публичен | Идентифициране на потребител пред сървър |
Хост ключ | Постоянен | Администратор | Публичен | Идентифициране на сървър |
Сесиен ключ | Една сесия | Клиент (и сървър) | Секретен | Защитена комуникация |
Потребителски ключ
Хост ключ
Сесиен ключ
Генератор на ключове
Хост база данни
Агент
Подпис
Конфигурационен файл
Не всички от тези компоненти са задължителни за имплементирането на SSH. Задължителни са сървър, клиент и ключове, като в много имплементации не се използва агент, а други нямат дори генератор на ключове.
Примерна част от опциите при OpenSSH.
Опция | Значение |
---|---|
-1 | Използва само SSH-1 протокол |
-2 | Използва само SSH-2 протокол |
-4 | Използва само IPv4 адрес |
-6 | Използва само IPv6 адрес |
-а | Изключване на препращане от агент |
-b bind_address | Избиране на мрежов интерфейс |
-A | Включване на препращане от агент |
-c cipher | Избиране на криптиращ шифър |
-C | Включване на компресия |
-D port | Създаване на препращащ динамичен порт |
-e character | Създаване на освобождаващ символ |
-F filename | Използване на друг конфигурационен файл |
-i filename | Избиране на идентифициращ файл |
-L username | Резервно потребителско име |
-L port1:host2: port2 | Локален препращащ порт |
-m algorithm | Избиране на MAC алгоритъм |
-M | Да не се изпълняват отдалечени команди |
-n | Пренасочване на stdin от /dev/null |
-p port | Избиране на TCP порт |
-P | Използване на непривилегирован порт |
-s subsystem | Извикване на отдалечена подсистема |
-q | Тих режим |
Инструкции стъпка по стъпка за първо ползване на SSH и PuTTY:
1. Изтеглете PuTTY.
2. След стартирането му ще се отвори прозорец, в който ще се въвеждат настойките за осъществяване на връзка.
3. Натиснете „Open“ за осъществяване на връзката.
4. При първо осъществяване на връзка ще се появи предупредителен прозорец „PuTTY Security Alert“ – приемете.
5. Въведете потребителско име (example.com) и парола.
6. Вече сте логнати на сървъра посредством SSH и би трябвало да се появи подобно съобщение:
Команда | Действие |
---|---|
cd example_dir | Промяна на директорията |
cd ~ | Връщане в главната директория |
cd - | Връщане в последната директория в която сте били |
cd .. | Връщане една директория нагоре в йерархията |
pwd | Показване на пълния път до текущата директория |
ls | Показване в дървовиден вид на файлове/директории в текущата директория |
ls *.php | Показва списък с файлове с такова разширение |
ls -alh | Показване на пълна информация за файл/директория с нейния размер |
exit | Изход от SSH клиента |
cp [filename] [new filename] | Преименуване на файл |
cp banner.jpg folder/banner.jpg | Копиране на файл в папка folder |
cp banner.jpg folder/banner728px.jpg | Копиране на файл в папка folder с ново име |
mv banner.jpg folder/banner.jpg | Преместване на файл в папка folder |
mv banner.jpg folder/banner728px.jpg | Преместване на файл в папка folder с ново име |
rm banner.jpg | Изтриване на файл |
rm * | Изтриване на всички файлове в текущата директория |
rm *.php | Изтриване на файлове с такова разширение |
cp -r [directory] [new directory] | Копиране на директория с всички включващи файлове и папки |
mkdir [folder_name] | Създаване на папка с име folder_name |
find . -name [sun] -print | Търсене на файл с име sun в текущата директория |
grep [apple] [fruits] | Търсене на текст в apple във файл fruits |
chmod [permission type] [file/folder] | Промяна на права на файл/папка |
1. SSH The Secure Shell: The Definitive Guide by Daniel J. Barrett, Richard E. Silverman, and Robert G. Byrnes[неработеща препратка]