SSH

ssh служит для удалённого доступа к компьютерам, сетевому оборудования и пр. для подключения используется клиент, серверная часть как правило установлена, но иногда следует проверить и установить.

Проверку можно осуществить разными способами:

ss - ntulp | grep 22

Данный вариант покажет нам слушает ли как-то из сервисов 22 порт, который по умолчанию используется сервером ssh, однако порт может быть и перенастроен

systemctl status sshd

Данный вариант позволяет увидеть состояние сервиса sshd
При отсутствии ssh устанавливаем его (пакеты как правило имеют в названии openssh или sshd) Конфигурационные файлы для сервера и клиента находятся как правило в каталоге /etc/ssh в зависимости от дистрибутива может быть вариант /etc/openssh Для описания настройки клиента используется файл ssh_config в соответствующем каталоге. Для описания настроек сервера используется файл sshd_config
На многих дистрибутивах по умолчанию подключение под пользователем root запрещено, поэтому в случае необходимости подключения к серверу под root надо изменить конфигурационный файл - добавить в sshd_config строку

PermitRootLogin yes

При необходимости изменить порт для сервера используем опцию Port , например изменим порт прослушивания на 1022

Port 1022

В современных дистрибутивах присутствуют такие вещи как selinux и apparmor, они предполагают определённые порты на определённые сервисы, поэтому прежде чем менять порты на определённые сервисы вам надо их либо настроить, либо отключить!

Подключение по ssh возможно с помощью логина/пароля, а также по ключам. Для запрета ходить по паролю необоходимо изменить или добавить в случае отсутствия следующую строчку в конфигурационный файл:

PasswordAuthentication no

Для того, чтобы изменения вступили в силу необоходимо перезапустить сервис sshd systemctl restart sshd\

Как уже было сказано в описании серверной части - кроме возможности подключения по логину/паролю, у нас есть ещё вариант подключения по ключам.
Для организации доступа по ключам необходимо их сгенерировать на клиентской машине (той, с которой хотим подключаться к серверу):

ssh-keygen

В процессе генерации ключей нас спросят о пароле для них - если мы слишком закомплексованы безопасностью, то можем поставить на них пароль, но тогда нам придётся каждый раз его вводить. В случае если комплекс абсолютной безопасности у нас отстуствут, мы смело жмём enter при запросе пароля, чтобы ключи были без него.
Далее необоходимо их добавить на сервер к которому хотим подключаться, для этого можно использовать специальную утилиту ssh-copy-id, синтаксис использования аналогичен использовнию утилиты ssh
Пример - скопируем нашу открытую часть ключа на сервер с адресом 192.168.0.10 для подключения к пользователю root на том сервере

ssh-copy-id root@192.168.0.10

В процессе копирования нас попросят ввести пароль от пользователя root, после чего утилита скопирует наш ключ и мы сможем подключатся к машине без использования пароля. Для других пользователей производятся аналогичные действия, однако следует помнить, что мы должны иметь позможность подключения к данному пользователю по паролю.

Конфигурационный файл для клиента ssh находится как правило по пути /etc/ssh/ssh_config
По умолчанию файл к данным кофигом зачастую закоментирован. При необоходимости мы можем настраивать оции подключения как к любым хостам, так и к конкретным. Наиболее востребованными опциями являются опции host, port Пример куска конфига, где мы подключаемся хосту 192.168.0.10 используя вместо стандартного порта 22, порт 1022

Host 192.168.0.10
Port 1022

При наличии таких строчек в конфиге мы при выполнении команды ssh root@192.168.0.10 будем подключаться не к порту 22, а к порту 1022
Одной из отличительных особенностей являет то, что после изменения конфига клиента нам не надо ничего перезапускать в отличии от сервера.