Як встановити SSH на Linux і корисні команди

Чи вперше ви користуєтесь Linux? Не знаєте, що таке SSH і для чого він потрібен? У цій статті ми детально розглянемо процес налаштування та використання SSH у середовищі Linux. З’ясуємо, як він функціонує, та розглянемо різноманітні корисні можливості, які він надає. Отже, почнемо!

SSH – це один з найпоширеніших інструментів у світі Linux. Проте, він не є стандартно встановленим у більшості дистрибутивів (за винятком Fedora та OpenSUSE). Процес налаштування SSH досить простий. Якщо ваша мета – лише підключення до віддаленого комп’ютера з Linux, вам достатньо встановити SSH-клієнт. Цей інструмент – це, по суті, сам SSH, і він не включає в себе серверної частини.

Однак, варто розглянути можливість налаштування SSH-сервера на кожному вашому Linux-комп’ютері. Це дозволить забезпечити двосторонній зв’язок, даючи змогу будь-якому комп’ютеру ініціювати або приймати з’єднання. Давайте розглянемо, як це зробити.

Інсталяція інструментів SSH

Ubuntu

sudo apt install openssh-server

Arch Linux

sudo pacman -S openssh
sudo systemctl enable sshd
sudo systemctl start sshd

Debian

sudo apt-get install openssh-server

Fedora/OpenSUSE

Хоча SSH, ймовірно, вже встановлений, сервер може бути не активований. Для активації відкрийте термінал та введіть:

sudo systemctl enable sshd
sudo systemctl start sshd

Інші дистрибутиви

Інші Linux-дистрибутиви, не згадані тут, скоріше за все, мають необхідні SSH-інструменти. Якщо це не так, зверніться до офіційних інструкцій для вашої версії Linux. Також можна скористатися пошуком у менеджері програм, використовуючи запити: openssh-server, ssh, sshd тощо.

Далі, відкрийте файл конфігурації SSH та внесіть необхідні зміни. Перш за все, зверніть увагу на порт за замовчуванням. SSH зазвичай використовує порт 22. Це дуже відомий порт, і тому зловмисники часто намагаються отримати до нього доступ. Рекомендується змінити порт на якийсь випадковий. Не важливо, який саме порт ви оберете, головне, щоб він не використовувався іншими програмами.

Для редагування файлу конфігурації скористайтеся командою: sudo nano /etc/ssh/ssh_config

Знайдіть рядок # port 22. Видаліть символ «#» та замініть «22» на бажаний номер порту. Збережіть зміни, натиснувши Ctrl + O. Потім перезапустіть SSH, виконавши наступні команди:

Ubuntu/Debian:

service ssh restart

Arch/OpenSUSE/Fedora:

sudo systemctl sshd restart

Важливо: якщо ви не плануєте використовувати SSH-порт через інтернет, змінювати його не обов’язково. У випадку локальної мережі залишення порту 22 є цілком прийнятним.

Для з’єднання з сервером SSH використовуйте команду: ssh -p [номер порту] [email protected]

Передача файлів через командний рядок

SSH є незамінним інструментом для віддаленого доступу до інших комп’ютерів. Це може бути комп’ютер, доступний через інтернет, або ж пристрій, розташований у сусідній кімнаті. Під час віддаленого підключення до Linux-комп’ютера часто виникає потреба в доступі до його файлів, наприклад, конфігураційних або важливих документів. Передача файлів на віддалений комп’ютер, коли є доступ лише до терміналу, може бути доволі складною задачею.

Саме тому SSH має вбудовану функціональність для спрощення передачі файлів в обох напрямках, безпосередньо через SSH.

Команда для передачі файлів виглядає наступним чином:

scp /шлях/до/файлів-або-папок [email protected]:/шлях/до/призначення

Замініть /шлях/до/ тощо на потрібні вам значення. Наприклад, ваш запит може виглядати так:

scp /home/derrik/importantfile.txt [email protected]:/home/derrik-server/files/

Безпечний FTP-сервер

FTP – це технологія, яка має давню історію, але це не зменшує її корисності. Вона й досі широко використовується разом з SSH. У чому причина? FTP значно спрощує доступ до всього віддаленого жорсткого диска Linux-комп’ютера безпосередньо з файлового менеджера. Для використання SFTP немає потреби в спеціальних налаштуваннях SSH. Будь-який Linux-комп’ютер з запущеним SSH-сервером також автоматично підтримує SFTP. Щоб отримати доступ до SFTP, відкрийте свій файловий менеджер, знайдіть розділ “сервер”, “мережа” або щось подібне. Зауважте, що інтерфейс кожного файлового менеджера Linux може відрізнятися, тому точну інструкцію навести неможливо.

sftp://[email protected]:номерпорту

Після введення адреси FTP система запросить ваш пароль та згоду на використання ключа від SSH-сервера.

Примітка: для доступу до SFTP з-за меж вашої мережі необхідно переадресувати порт, який ви використовуєте для SSH. Зверніться до інструкції вашого маршрутизатора, щоб дізнатися, як переадресовувати порти.

Віддалене резервне копіювання

SSH має різноманітні застосування, включаючи віддалене резервне копіювання дисків та розділів. Щоб створити резервну копію жорсткого диска з локального комп’ютера та відправити образ через мережу використовуючи SSH, скористайтеся наступною командою:

Примітка: у прикладі використовується жорсткий диск /dev/sda. Вам необхідно змінити команду відповідно до вашої ситуації.

Резервне копіювання розділу

dd if=/dev/sda1 | gzip -1 - | ssh [email protected] dd of=image.img.gz

Резервне копіювання всього диска

dd if=/dev/sda | gzip -1 - | ssh [email protected] dd of=image.img.gz

Також можна отримати образ жорсткого диска (або розділів) віддаленого диска:

Резервне копіювання розділу

ssh [email protected] "dd if=/dev/sda1 | gzip -1 -" | dd of=image.img.gz

Резервне копіювання всього диска

ssh [email protected] "dd if=/dev/sda | gzip -1 -" | dd of=image.img.gz

Розпакуйте зображення за допомогою команди: gzip -d image.img.gz

Перегляд віддалених програм локально

Іноді використання лише терміналу під час віддаленого доступу до комп’ютера недостатньо. На щастя, SSH дозволяє перенаправляти вікна X. Це означає, що ви можете використовувати GUI-сервер x11 для відображення віддалених вікон на вашому локальному комп’ютері. Наприклад, якщо потрібно протестувати веб-сайт на віддаленому комп’ютері з Linux, ви можете запустити Firefox віддалено і перенаправити вікно Firefox x11 на свій локальний Linux-комп’ютер.

Для активації перенаправлення вікон X11 відредагуйте файл конфігурації ssh: sudo nano /etc/ssh/ssh_config

Знайдіть рядок # ForwardX11 no, видаліть символ «#» та замініть «no» на «yes».

Перезапустіть службу SSH.

Ubuntu/Debian:

service ssh restart

Arch/OpenSUSE/Fedora:

sudo systemctl sshd restart

Під час з’єднання через SSH використовуйте ключ -X.

ssh -X -p номерпорту [email protected]

Висновок

SSH – це потужний інструмент, але багато новачків у світі Linux не знають про його можливості. Це, на жаль, адже він має дуже багато застосувань. У цій статті ми лише торкнулися поверхні. У використанні безпечної оболонки ваші можливості обмежені лише вашими навичками.