Как включить SSH в Linux. Как подключиться к Linux по SSH
SSH позволяет подключиться к удалённому компьютеру и выполнить на нём команды, подключение и передача данных происходит по зашифрованному каналу, который защищён от различных атак перехвата и подмены данных.
SSH включает в себя две программы: сервер и клиент. Сервер устанавливается на удалённую машину, к которой нужно подключиться и выполнить на ней команды. Клиент предназначен для подключения к удалённой машине.
Сервер SSH работает как служба, которая по умолчанию прослушивает 22 порт. При подключении по умолчанию используется аутентификация по паролю — нужно ввести пароль пользователя на удалённой системе Linux. Также можно настроить аутентификацию с помощью ключей — данный вариант является более удобным (не требуется вводить пароль) и более надёжным (ключи менее подвержены брут-форсу).
Говоря о SSH в Kali Linux, нужно учитывать, что данный дистрибутив выпускается в различных вариантах (смотрите подробности «Где скачать Kali Linux. В чём различие версий Kali Linux»): для персональных компьютеров, для ARM компьютеров, для мобильных телефонов, для виртуальных машин. Рассмотрим особенности SSH в Kali Linux для ПК и для ARM.
к содержанию ↑SSH в Kali Linux в ARM компьютерах
Поскольку обычно ARM устройства представляют собой маломощные компьютеры без монитора, то управлять ими возможно только подключившись по SSH. По этой причине служба SSH на таких устройствах уже и установлена, и запущена по умолчанию.
В таких системах в качестве учётных данных для входа используйте пару:
- Пользователь: root
- Пароль: toor
В некоторых системах также настроен ещё один пользователь: kali / kali
Проблема с ARM устройствами без экрана может заключаться в том, что неизвестен их IP адрес, который в большинстве локальных сетей присваивается автоматически протоколом DHCP. Обычно роутеры позволяют просмотреть список устройств и их IP адреса. Если у вас такой возможности нет, то их можно найти путём сканирования сети, например, командой:
1
|
sudo nmap -p 22 _gateway /24 |
Или командой:
1
|
sudo nmap -sn _gateway /24 |
Вместо _gateway операционная система Linux сама подставит IP адрес вашего роутера, в результате получтися _gateway/24, то есть будет просканирована ваша локальная сеть, например, 192.168.1.0/24. Либо явно укажите диапазон для сканирования.
к содержанию ↑SSH в Kali Linux на настольных компьютерах
В Kali Linux уже установлен пакет SSH, но автоматический его запуск отключён (как и всех других сетевых служб). Следовательно, для подключения к Kali Linux по SSH нужно запустить эту службу. При желании, её можно добавить в автозагрузку.
Есть два варианта запуска службы SSH:
- ssh.service — служба SSH всегда будет запущена
- ssh.socket — система откроет для прослушивания 22-й порт и будет ожидать подключение к нему. В случае подключения, система запустит службу SSH. Во всё остальное время (когда нет подключений по SSH), служба SSH будет отключена и не будет потреблять системные ресурсы.
Второй вариант является более предпочтительным. Подробности о первом и втором варианте смотрите в «Полном руководстве по SSH».
Для запуска службы SSH в Kali Linux:
1
|
sudo systemctl start ssh .socket |
Для добавления службы в автозагрузку:
1
|
sudo systemctl enable ssh .socket |
Для проверки состояния службы:
1
|
systemctl status ssh .socket |
Как подключиться к Kali Linux по SSH
О том, как подключиться по SSH из различных операционных систем смотрите «Полное руководство по SSH (ч.3) Как подключиться к SSH. Настройка клиента OpenSSH».
Команда для подключения имеет следующий вид:
1
|
ssh ПОЛЬЗОВАТЕЛЬ_УДАЛЁННОЙ_СИСТЕМЫ@IP_АДРЕС |
В качестве IP_АДРЕСа удалённой системы нужно указать её IP. Узнать IP адрес можно командой:
1
|
ip a |
Кстати, чтобы Kali Linux после перезагрузки всегда имела одинаковый IP адрес, нужно настроить статический IP, как это сделать написано в статье «Как настроить Kali Linux на использование статичного IP адреса».
В данном случае IP адрес Kali Linux это 192.168.1.68. Пользователем по умолчанию является root. Тогда команда должна быть следующей:
1
|
ssh root@192.168.1.68 |
Но проблема в том, что в SSH по умолчанию заблокирован вход пользователя root по паролю. Вариантов выхода два:
- разрешить вход root по паролю
- настроить аутентификацию с помощью ключей
Рассмотрим их оба, но я рекомендую именно второй вариант, как более безопасный и более удобный.
к содержанию ↑Почему SSH не принимает пароль root
Настройка службы SSH выполняется в конфигурационном файле /etc/ssh/sshd_config. Откроем его:
1
|
gedit /etc/ssh/sshd_config |
Найдите строку
1
|
#PermitRootLogin prohibit-password |
и замените её на:
1
|
PermitRootLogin yes |
Сохраните и закройте файл.
Перезапускать службу SSH НЕ нужно, поскольку при выборе варианта ssh.socket эта служба и так отключена и будет запущена только при следующей попытке подключения по SSH.
Подключаемся:
1
|
ssh root@192.168.1.68 |
При самом первом подключении программа выведет сообщение:
1
|
Are you sure you want to continue connecting (yes/no/[fingerprint])? |
В нём у нас спрашивается, действительно ли мы хотим подключиться, набираем: yes
Затем вводим пароль и мы оказываемся в Kali Linux:
О том, что мы в другой системе, говорит изменившееся приглашение командной строки — теперь там имя пользователя и имя хоста удалённой системы.
к содержанию ↑Как настроить аутентификацию по ключу в Kali Linux (SSH без пароля)
Отключаемся от удалённой машины. И на локальной машине (с которой заходим) выполняем команду:
1
|
ssh -keygen -t rsa |
Опять без предварительного подключения, выполняем команду на удалённой машине (IP и имя пользователя поменяйте на свои):
1
|
ssh root@192.168.1.68 mkdir . ssh |
Теперь нам нужно скопировать содержимое файла id_rsa.pub на удалённую машину. Сделать это очень просто (не забываем менять данные на свои):
1
|
cat . ssh /id_rsa .pub | ssh root@192.168.1.68 'cat >> .ssh/authorized_keys' |
После этого подключаемся как обычно, но вход уже не будет требовать пароль:
1
|
ssh root@192.168.1.68 |