SSH (Secure Shell): теоретична частина
1. Вступ до SSH
- Що таке SSH (Secure Shell)
- Протокол безпечного віддаленого доступу
- Шифрування даних, аутентифікація користувачів
- Основні сценарії використання:
- Віддалене адміністрування
- Передача файлів
- Тунелювання трафіку
- Інтеграція з Git та автоматизацією
SSH (Secure Shell) — це мережевий протокол і набір інструментів, що забезпечують безпечне з’єднання між двома комп’ютерами через незахищену мережу (наприклад, Інтернет). Його головна ідея — дати можливість адміністратору чи користувачу працювати з віддаленим комп’ютером так, ніби він сидить безпосередньо за його терміналом, але при цьому весь трафік зашифрований і захищений від перехоплення.
З одного боку, SSH - це протокол, який означує правила встановлення безпечного з’єднання між клієнтом і сервером. Працює поверх TCP (за замовченням на порту 22), використовує криптографічні методи для шифрування трафіку (AES, ChaCha20 тощо), перевірки цілісності даних (HMAC), аутентифікації (паролі, ключі, сертифікати). Має кілька версій, з яких сьогодні використовується SSH-2 (безпечніший і сучасний).
З іншого боку SSH - це програми, які реалізують протокол. Найпопулярніший набір має назву OpenSSH:
ssh
— підключення до віддаленої машини;scp
— копіювання файлів;sftp
— передача файлів у режимі FTP, але через SSH;ssh-keygen
— створення ключів;ssh-agent
іssh-add
— керування ключами;sshd
— серверна частина (демон).
У сучасних Windows також є вбудований OpenSSH, а раніше користувалися окремими програмами (PuTTY, WinSCP).
SSH використовують для:
- віддаленого адміністрування
- передачі файлів (див.4)
- тунелювання трафіку (див.5)
- інтеграція з Git та автоматизацією (див.6.)
Найпоширеніше використання SSH це віддалене адміністрування. Системний адміністратор може зайти на сервер і виконувати команди:
ssh admin@server.example.com
Таким чином керують вебсерверами, базами даних, маршрутизаторами, IoT-пристроями. У Windows це особливо актуально після появи OpenSSH, бо раніше користувалися PuTTY або RDP.
Коли ви підключаєтесь через SSH, сам SSH лише створює захищений канал зв’язку між клієнтом і сервером. А команди, які ви вводите після входу, виконуються саме тією операційною системою, до якої ви підключились. Тобто якщо ви підключились по SSH до Linux-сервера, то у вас відкривається Bash (або інший shell). Там доступні всі команди Linux (ls
, cd
, cat
, systemctl
, apt
, yum
тощо). Якщо ви підключились по SSH до Windows з увімкненим OpenSSH Server, то у вас відкривається cmd.exe
або PowerShell
(залежить від налаштувань). Відповідно, доступні команди Windows (dir
, type
, netstat
, PowerShell-скрипти і т.д.). Сам протокол SSH не означує команди — він лише передає текстові дані між клієнтом і оболонкою сервера.
У той же час команди SSH (ssh
, scp
, sftp
, ssh-keygen
) - це клієнтські утиліти, які запускаєте ви на своєму комп’ютері. А команди, які ви вводите після підключення — це вже нативні команди операційної системи сервера. Наприклад команда:
ssh user@192.168.1.10
ця команда запуск ssh-клієнта, яикй створює захищене з’єднання. Після входу ви можете написати:
ls -l /home/user
і це виконається на сервері Linux. Якщо б це був Windows-сервер, то там би треба було писати:
dir C:\Users\user
2. SSH у Linux
2.1. Клієнтська частина
У Linux клієнт SSH зазвичай встановлений за замовчуванням у більшості дистрибутивів. Це утиліта ssh
, яка дозволяє користувачу підключатися до віддаленого сервера. Базова форма команди:
ssh user@host
де
user
— ім’я користувача на віддаленій системі,host
— IP-адреса або доменне ім’я сервера.
Наприклад:
ssh admin@192.168.1.10
Часто потрібні додаткові параметри:
-p <порт>
— вказати номер порту, якщо сервер слухає не стандартний 22-й.-i <файл_ключа>
— підключення з використанням приватного ключа.-L
— локальне тунелювання портів (проброс із клієнта на сервер).-R
— зворотне тунелювання (проброс із сервера на клієнт).
Приклад складного підключення:
ssh -p 2222 -i ~/.ssh/id_rsa user@192.168.1.10
У цьому випадку: використовується порт 2222, підключення йде через приватний ключ id_rsa
.
2.2. Серверна частина (OpenSSH)
Щоб дозволити іншим користувачам підключатися до вашого Linux-комп’ютера по SSH, потрібно встановити OpenSSH Server. Встановлення пакета:
У Debian/Ubuntu:
sudo apt update
sudo apt install openssh-server
У CentOS/RHEL/Fedora:
sudo dnf install openssh-server
Основні параметри зберігаються у файлі:
/etc/ssh/sshd_config
Тут можна змінити порт, дозволити/заборонити логін по паролю, задати список користувачів, які можуть підключатися.
У сучасних системах керування службою здійснюється через systemd
:
sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh
enable
— автоматичний старт при завантаженні.start
— запуск служби одразу.status
— перевірка стану.
Після цього сервер починає слухати підключення на порту 22 (або іншому, вказаному у конфігурації).
2.3. Аутентифікація
SSH підтримує два основних методи входу:
- За паролем. Користувач вводить логін і пароль. Це просто, але менш безпечно, оскільки паролі можуть бути підібрані brute-force атаками.
- За допомогою ключів. Користувач генерує пару ключів — приватний і публічний. Публічний ключ додається на сервер у файл
~/.ssh/authorized_keys
, а приватний залишається тільки на клієнті. Генерація ключів виконується командою:
ssh-keygen -t rsa -b 4096
Після цього ключі зберігаються у каталозі ~/.ssh/
(наприклад, id_rsa
і id_rsa.pub
). Щоб передати публічний ключ на сервер, використовується утиліта:
ssh-copy-id user@host
Вона автоматично додає ключ у файл authorized_keys
на віддаленій машині. Після цього можна входити без пароля, просто використовуючи ключ. Це зручно й безпечніше.
3. SSH у Windows
3.1. SSH-клієнти у Windows
Вбудований клієнт
У сучасних версіях Windows (починаючи з Windows 10, а також у Windows 11) є вбудований SSH-клієнт. Це означає, що для базових підключень більше не потрібно додаткове програмне забезпечення. Запуск через PowerShell або командний рядок (cmd):
ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address]
[-c cipher_spec] [-D [bind_address:]port] [-E log_file]
[-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file]
[-J destination] [-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-P tag] [-p port] [-Q query_option]
[-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
destination [command [argument ...]]
зокрема у форматі:
ssh user@host
де:
user
— ім’я користувача на віддаленому комп’ютері,host
— IP-адреса або доменне ім’я сервера.
Наприклад:
ssh admin@192.168.1.100
Корисні параметри:
-p 2222
— вказати інший порт, якщо сервер не на стандартному 22.-i C:\Users\user\.ssh\id_rsa
— використати приватний ключ для входу.ssh -L 8080:localhost:80 user@host
— прокидування локального порту.
За замовчуванням ключі зберігаються у:
C:\Users\<ім’я_користувача>\.ssh\
Туди можна скопіювати id_rsa
(приватний ключ) і id_rsa.pub
(публічний ключ).
Є альтернативні SSH-клієнти (коли треба більше можливостей):
- PuTTY - класичний, легкий клієнт з графічним інтерфейсом.
- MobaXterm — розширений термінал з підтримкою X11, SFTP, кількох вкладок.
- Termius — сучасний кросплатформовий клієнт (Windows, Linux, macOS, Android, iOS).
- WinSCP — для передачі файлів через SFTP/SCP.
PuTTY
PuTTY з’явився наприкінці 90-х років як відповідь на відсутність у Windows стандартного інструмента для безпечного віддаленого доступу. У той час у Linux та Unix-системах вже існували реалізації SSH-клієнтів і серверів, але у Windows користувачі були змушені працювати через небезпечні Telnet або Rlogin. PuTTY запропонував легке і безкоштовне рішення: невеликий виконуваний файл, який запускався без інсталяції і дозволяв швидко підключитися до серверів по SSH, Telnet чи навіть через послідовний порт. Завдяки простоті, відкритому коду та широким можливостям налаштування він став стандартом де-факто для адміністраторів Windows.
Сьогодні, коли у Windows з’явився вбудований SSH-клієнт, актуальність PuTTY дещо знизилась. Проте він і далі має сенс у кількох випадках. По-перше, коли потрібна робота зі старими протоколами або специфічним обладнанням, яке не підтримує сучасні засоби. По-друге, PuTTY зручний для користувачів, яким потрібен графічний інтерфейс налаштувань і можливість зберігати профілі підключень без редагування конфігураційних файлів. По-третє, програма й досі популярна у portable-варіанті, коли треба мати інструмент з собою на флешці або на тимчасовій машині без додаткових інсталяцій.
рис.1. Графічний вигляд PuTTY
Таб.1. Порівняння з вбудованим SSH у Windows
Характеристика | PuTTY | Вбудований SSH у Windows |
---|---|---|
Рік появи | Кінець 1990-х, коли у Windows не було SSH | З’явився у Windows 10 (2018, версія 1809) |
Спосіб запуску | Окремий .exe , може бути portable |
Вбудований у PowerShell та cmd |
Налаштування | Графічний інтерфейс, збереження профілів | Через командний рядок або файл ~/.ssh/config |
Підтримувані протоколи | SSH, Telnet, Rlogin, COM-порт | Тільки SSH (протокол 2) |
Передача файлів | Окремі утиліти: pscp , psftp |
Вбудовані команди scp , sftp |
Гнучкість терміналу | Кодування, кольори, розмір буфера | Обмежені можливості PowerShell/cmd |
Використання ключів | Через GUI або завантаження вручну | Автоматично з папки C:\Users\user\.ssh\ |
Зручність для DevOps/скриптів | Менш зручний, краще для ручної роботи | Оптимально для автоматизації та CI/CD |
Основні переваги | Графічний інтерфейс, профілі, portable-режим | Інтеграція з Windows, простота для скриптів |
Актуальні сценарії | Старі протоколи, робота з обладнанням, portable | Сучасне адміністрування, DevOps, Git, CI/CD |
WinSCP
WinSCP з’явився на початку 2000-х як зручний інструмент для передачі файлів між Windows і Unix/Linux-серверами. У той час командні утиліти scp
та sftp
у Windows були відсутні, і користувачам потрібен був простий спосіб завантажувати та завантажувати файли по захищеному каналу. На відміну від FTP-клієнтів, які передавали дані у відкритому вигляді, WinSCP одразу орієнтувався на використання SSH-протоколу, забезпечуючи шифрування та безпечну аутентифікацію. Завдяки інтеграції з PuTTY і можливості виклику команд безпосередньо з програми він швидко став популярним серед адміністраторів.
Сьогодні WinSCP зберігає актуальність завдяки своєму графічному інтерфейсу, що дозволяє працювати з файлами у знайомому для користувачів Windows вигляді. У програмі доступні два режими роботи: класичний файловий менеджер у стилі Norton Commander та звичайне вікно провідника. Це робить WinSCP зручним як для досвідчених адміністраторів, так і для початківців, які не хочуть запам’ятовувати команди scp
чи sftp
. Додаткові можливості включають синхронізацію директорій, інтеграцію з текстовими редакторами для швидкого редагування файлів на сервері та збереження сесій з ключами і паролями.
Попри появу вбудованих команд scp
і sftp
у Windows, WinSCP часто обирають там, де важлива швидкість роботи через GUI, особливо коли доводиться обмінюватися файлами з різними серверами. У сценаріях DevOps і автоматизації більше підходять консольні утиліти, але для повсякденної ручної роботи WinSCP і досі є одним з найзручніших рішень.
рис.2. Графічний вигляд WinSCP
Про обмін файлами через SSH та обмеження додатково читайте п.4.
3.2. SSH-сервер у Windows
Windows також може виступати як SSH-сервер. Це зручно, коли потрібно підключатися до вашого ПК з іншої машини. Починаючи з Windows 10 (версія 1809) і Windows Server 2019, OpenSSH входить до складу системи як додатковий компонент. Його можна встановити кількома способами.
Наприклад скористатися графічним інтерфейсом: у налаштуваннях Windows відкрити розділ Apps → Optional features, обрати Add a feature, знайти у списку OpenSSH Server і встановити його. Після цього компонент з’явиться у системі як служба, яку можна запускати та налаштовувати.
Другий поширений спосіб — встановлення через PowerShell. Для цього використовується команда:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
яка завантажує і додає компонент у систему. Такий варіант зручний для адміністраторів, оскільки легко автоматизується через скрипти. Як альтернатива, у класичному командному рядку можна застосувати утиліту DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
Це фактично той самий механізм, але виконується без PowerShell.
У старіших версіях Windows, де вбудованого пакета ще немає, можливе ручне встановлення OpenSSH з офіційного репозиторію GitHub проєкту PowerShell/Win32-OpenSSH. Проте в сучасних випусках ОС у цьому вже немає потреби, оскільки весь необхідний інструментарій інтегрований у систему.
Після встановлення штатного сервер перевірити наявність клієнта/сервера:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Після встановлення потрібно запустити службу sshd
:
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd
— запускає сервер.Set-Service -Name sshd -StartupType 'Automatic'
— щоб SSH стартував автоматично при завантаженні Windows.
Для перевірки стану:
Get-Service sshd
Основний файл конфігурації сервера:
C:\ProgramData\ssh\sshd_config
У ньому можна:
- дозволити/заборонити логін по паролю (
PasswordAuthentication yes/no
), - вказати дозволені ключі,
- заборонити вхід для певних користувачів.
Після змін — перезапустити службу:
Restart-Service sshd
При першому запуску Windows може запитати дозвіл на відкриття порту 22. Якщо ні — потрібно додати правило вручну, наприклад через PowerShell:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Підключення до Windows по SSH**
-
З Linux або іншої Windows:
ssh user@windows-host
-
Якщо використовується ключова аутентифікація, потрібно додати публічний ключ у файл:
C:\Users\<ім’я_користувача>\.ssh\authorized_keys
4. Передача файлів через SSH
SSH використовується не лише для віддаленого адміністрування, але й для безпечної передачі файлів. Це особливо важливо, адже звичайний FTP передає дані та паролі у відкритому вигляді. На відміну від нього, SSH забезпечує шифрування і захист від перехоплення. Для цього застосовуються протоколи SCP (Secure Copy Protocol) та SFTP (SSH File Transfer Protocol).
SCP і SFTP є двома різними підходами до передачі файлів, але обидва вони базуються на використанні SSH. Коли запускається команда scp
, клієнт встановлює SSH-з’єднання з віддаленим сервером і передає дані через захищений канал. За своєю суттю scp
нагадує старий протокол rcp
, тільки з тією різницею, що вся комунікація відбувається з використанням шифрування та аутентифікації, які забезпечує SSH. Це робить scp
простим і зручним для швидкого копіювання файлів, але його можливості обмежуються лише пересиланням даних у один або в інший бік.
SFTP, на відміну від scp
, не є лише утилітою, а окремим підпротоколом усередині SSH. Його повна назва — SSH File Transfer Protocol. Він також використовує порт 22 і всі механізми захисту SSH, але надає значно ширший набір функцій. У рамках одного з’єднання користувач отримує змогу переглядати вміст каталогів на сервері, завантажувати і відвантажувати файли, перейменовувати їх, видаляти та змінювати права доступу. Таким чином, SFTP перетворює SSH-сесію на повноцінний файловий менеджер у стилі класичного FTP, але із збереженням безпеки.
У сучасних системах обидва варіанти використовуються паралельно. Scp зручний тоді, коли потрібно швидко передати один файл або каталог, і для цього вистачає короткої команди. Якщо ж мова йде про регулярну роботу з великою кількістю файлів чи потребу у більшому контролі, ефективніше застосовувати SFTP. Саме тому у графічних клієнтів, таких як WinSCP чи FileZilla, основою роботи є саме SFTP, тоді як scp залишається популярним у сценаріях автоматизації й скриптів.
Хоча SFTP і SCP дозволяють безпечно передавати файли між Windows і Unix/Linux-серверами, вони не можуть повністю замінити локальну файлову систему. Одне з обмежень пов’язане з продуктивністю: передача великих файлів через SSH завжди трохи повільніша, ніж копіювання локально або за допомогою оптимізованих інструментів, наприклад rsync. Інша проблема — різні моделі керування доступом у Windows і Linux. Через це при копіюванні не завжди коректно зберігаються права, власники чи спеціальні атрибути. Наприклад, файл з правами 755
у Linux може втратити свої дозволи після копіювання на Windows.
Певні труднощі виникають і при роботі з великими наборами даних або при потребі синхронізації каталогів. SCP не підтримує синхронізацію, а робота через SFTP з тисячами файлів чи глибокими деревами каталогів може бути повільною. У таких випадках краще застосовувати rsync. До цього додається ще й обмежена інтеграція з іншими застосунками: редактори та IDE не завжди можуть напряму працювати з файлами по SSH. Хоча WinSCP пропонує можливість редагування на сервері, це не так зручно, як робота з локальним диском.
Ще одним обмеженням є відсутність прозорого доступу. Хоча у Linux існують рішення на кшталт SSHFS, у Windows файли з сервера через SFTP не монтуються як звичайний диск без додаткового програмного забезпечення. Це означає, що користувач бачить їх лише у спеціальному клієнті, а не у стандартному провіднику Windows.
4.1. Передача файлів Linux ↔ Linux
У Linux найпростіший спосіб — це команда scp
. Вона працює подібно до cp
, але замість локального шляху використовується синтаксис user@host:/шлях/
. Приклад:
scp file.txt user@192.168.1.10:/home/user/
Ця команда скопіює файл file.txt
з локальної машини на сервер у каталог /home/user/
. Зворотна передача (з сервера на клієнт):
scp user@192.168.1.10:/home/user/file.txt .
Тут крапка означає поточний каталог. Також можна копіювати рекурсивно цілі директорії:
scp -r project/ user@192.168.1.10:/home/user/
Крім scp
, є більш зручна утиліта sftp
, яка відкриває інтерактивну сесію, схожу на FTP:
sftp user@192.168.1.10
sftp> put localfile.txt
sftp> get remotefile.txt
4.2. Передача файлів Linux ↔ Windows
У сучасних версіях Windows (10 і 11) вже є вбудовані команди scp
і sftp
у PowerShell, тож можна використовувати той самий синтаксис, що й у Linux. Приклад з Windows PowerShell:
scp C:\Users\me\Documents\report.pdf user@192.168.1.10:/home/user/
або у зворотному напрямку:
scp user@192.168.1.10:/home/user/report.pdf C:\Users\me\Documents\
Таким чином, Windows тепер має ті ж можливості, що і Linux, без додаткового ПЗ. До появи вбудованого OpenSSH у Windows найпоширенішим інструментом для передачі файлів був WinSCP, який розглядався вище.
Якщо на Windows встановлений OpenSSH Server, то ця система може виступати і як сервер для отримання чи видачі файлів через scp
та sftp
. Це означає, що до Windows можна підключатися з Linux або іншої Windows-комп’ютера і передавати файли у зворотному напрямку. Наприклад, команда з Linux:
scp file.txt user@windows-host:C:/Users/user/
або інтерактивна сесія:
sftp user@windows-host
sftp> put localfile.txt
sftp> get remotefile.txt
У такому випадку всі операції виконуються через службу sshd
, а файлові шляхи відповідають структурі Windows (C:\Users\...
). Потрібно враховувати, що права доступу до файлів будуть інтерпретуватися за правилами Windows, тому POSIX-атрибути з Linux не завжди зберігаються коректно.
5. Тунелювання та порти
SSH уміє прокидати TCP-трафік через зашифроване з’єднання. Є три режими:
- локальне прокидання порту (local port forwarding)
- зворотне прокидання порту (remote port forwarding)
- динамічне прокидання (dynamic port forwarding, SOCKS proxy)
У всіх випадках корисно додавати -N
(не запускати shell на сервері) і -T
(без псевдотермінала), коли вам потрібен тільки тунель.
Загальний синтаксис:
-L [bind_addr:]LPORT:DEST_HOST:DEST_PORT
-R [bind_addr:]RPORT:DEST_HOST:DEST_PORT
-D [bind_addr:]LPORT
5.1 Локальний форвардинг (-L)
todo
Команда:
ssh -N -L 8080:localhost:80 user@host
Ви відкриваєте на своєму ПК порт 8080. Коли звертаєтесь до http://localhost:8080
, SSH шифровано доставляє трафік на сервер host
, а вже там під’єднується до localhost:80
(відносно сервера). Типовий кейс: доступ до внутрішнього веб-інтерфейсу/БД за бастіоном.
Можна прокидати відразу кілька портів, повторивши -L
. Якщо потрібно, щоб локальний порт був доступний з інших машин вашої мережі, вкажіть прив’язку: -L 0.0.0.0:8080:localhost:80
і подбайте про фаєрвол.
Зручно для БД:
ssh -N -L 5432:db.internal:5432 user@bastion
psql -h localhost -p 5432 …
5.2 Зворотний форвардинг (-R)
todo
Команда:
ssh -N -R 2222:localhost:22 user@host
На віддаленому сервері host
з’являється порт 2222, підключення до нього шифровано перекидається до вашого локального localhost:22
. Це корисно, коли ваш ПК за NAT/фаєрволом і вам треба дати доступ назовні. За замовчуванням віддалений порт слухає лише на 127.0.0.1
сервера. Щоб відкрити його назовні, вкажіть адресу прив’язки:
ssh -N -R 0.0.0.0:2222:localhost:22 user@host
і на сервері має бути GatewayPorts yes
або GatewayPorts clientspecified
у sshd_config
(і правильне правило фаєрвола). Якщо цього не зробити, порт не буде доступний ззовні.
Практичний прийом для обміну файлами чи тимчасового SSH-доступу до вашої машини з Інтернету — але використовуйте з обережністю, обмежуйте доступ фаєрволом і ключами.
5.3 Динамічний форвардинг (SOCKS) (-D)
todo
Команда:
ssh -N -D 1080 user@host
SSH підіймає на вашому ПК SOCKS-проксі на localhost:1080
. Далі програми, які підтримують SOCKS5, можуть тунелювати будь-які TCP-з’єднання через сервер host
(ad-hoc “VPN” для окремих застосунків).
Як користуватися:
-
У браузері вкажіть проксі SOCKS5:
127.0.0.1:1080
. -
Щоб уникнути DNS-витоків, у застосунку вмикайте “proxy DNS” (наприклад, у Firefox
network.proxy.socks_remote_dns=true
). -
CLI-приклад:
curl --socks5-hostname 127.0.0.1:1080 https://example.com
Пам’ятайте, що шифрується шлях до сервера SSH. Далі до кінцевого сайту шифрування є лише якщо це HTTPS.
5.4 Бастіони та multi-hop (ProxyJump)
todo
Можна комбінувати тунелі з “стрибком” через бастіон:
ssh -J user@bastion user@app
ssh -N -J user@bastion -L 5432:db.internal:5432 user@app
Або описати в ~/.ssh/config
:
Host app
HostName app.internal
User user
ProxyJump bastion
Host bastion
HostName bastion.myorg.com
User user
Це спрощує команди та дозволяє робити надійні ланцюжки доступу.
5.5 Типові параметри для “стабільних” тунелів
todo
-o ExitOnForwardFailure=yes
— упасти одразу, якщо форвардинг не піднявся.-o ServerAliveInterval=60 -o ServerAliveCountMax=3
— підтримка живості сесії.- Стиснення для повільних лінків:
-C
. - На Linux для постійного тунелю зручно використати
autossh
або unit systemd. На Windows — окреме вікно PowerShell, фонове завдання (Scheduled Task) чи NSSM-сервіс.
5.6 Усунення несправностей
todo
- “Address already in use” — локальний порт зайнятий; виберіть інший або закрийте процес.
- Тунель піднявся, але сервіс не відповідає — перевірте цільовий
DEST_HOST:DEST_PORT
з точки зору того кінця, де він має досяжність (часто проблема в тому, щоlocalhost
трактують не там). - Для діагностики додайте
-v
/-vvv
.
6. Інтеграція SSH у DevOps
todo
- Підключення до Git по SSH
- Використання в CI/CD (GitHub Actions, GitLab Runner)
- Автоматизація через Ansible
7. Безпека
todo
- Заборонити root-логін у
sshd_config
- Використовувати лише ключі, вимкнути паролі
- Використання fail2ban / firewall
Контрольні питання
todo
При створенні конспекту використовувався ChatGPT
Теоретичне заняття розробив Олександр Пупена.
Про проект і можливість допомогти проекту написано тут