Почему именно эта тема?
SSH, secure shell, – это сетевой протокол, используемый для доступа к удаленной машине Linux.
Вы можете выполнять команды на удаленном сервере, подключившись с помощью протокола SSH.
SSH – это важная часть технического собеседования по Linux.
Как новички, так и опытные технические специалисты могут следить за этим руководством для своих собеседований!
Это очень обширная и интересная тема.
Подготовьте тему SSH и идите на собеседование с уверенностью.
- Вопрос 1 : Что такое SSH?
- Вопрос 2 : Какой номер порта по умолчанию используется для SSH?
- Вопрос 3 : Что представляет собой конфигурационный файл для SSH-сервера?
- Вопрос 4 : Что представляет собой конфигурационный файл для клиента SSH?
- Вопрос 5 : Можно ли изменить номер порта SSH по умолчанию?
- Вопрос 6 : Как получить доступ к серверу по SSH без фактического пароля root? Возможно ли это?
- Вопрос 7 : По каким-то причинам безопасности вам нужно отключить прямой вход root на ваш сервер? Что бы вы сделали?
- Вопрос 8 : Рассмотрим сценарий, в котором я хочу отключить прямой вход в систему root и разрешить моему пользователю доступ только к оболочке сервера.
- Как вы настроите SSH conf для этого?
- Вопрос 9 : Подобно AllowUsers, можно ли управлять доступом к серверу для Linux групп?
- Вопрос 10 : Итак, вы успешно разрешили доступ некоторым пользователям и группам. Теперь я хочу заблокировать доступ к SSH одному конкретному пользователю/пользователям и группе. Как вы настроите конфигурацию SSH для этого?
- Вопрос 11 : В чем разница между SSH и Telnet? Что вы предпочитаете? И почему?
- Вопрос 12 : Как включить отладку в команде ssh?
- Вопрос 13 : Пожалуйста, объясните различные протоколы для связи SSH.
- Вопрос 14 : Как проверить информацию о версии сервера SSH из командной строки Linux?
- Вопрос 15 : Итак, вы можете подключиться к удаленному хосту с помощью команды SSH.
- Как вы будете копировать файлы с помощью SSH? Возможно ли это?
- Вопрос 16 : Ваш порт SSH не стандартный, в этом случае, будет ли вышеуказанная команда копирования SCP работать или нет?
- Вопрос 17 : Что сокращенно называется SCP?
- Вопрос 18 : Слышали ли вы про blowfish?
- Вопрос 19 : Можете ли вы кратко объяснить работу SCP?
- Вопрос 20 : Часто используемые переключатели SCP?
- Вопрос 21 : Что означает директива “AddressFamily” в конфигурации SSH?
- Вопрос 22 : Слышали ли вы команду “sshpass?”.
- Вопрос 23 : Что такое Listen Address в конфигурации SSH?
- Вопрос 24 : Какое назначение имеет параметр “LoginGraceTime?”.
- Вопрос 25 : Какое назначение имеет параметр “MaxAuthTries?”.
- Вопрос 26 : Как перезапустить демон SSH?
- Вопрос 27 : Как проверить состояние демона SSH?
- Вопрос 28 : Как ограничить полосу пропускания, используемую командой scp?
- Вопрос 29 : Как создать баннер для отображения текстов при входе на сервер через SSH?
- Вопрос 30 : Что вы подразумеваете под шифром SSH? Каковы различные типы шифров в SSH?
- Вопрос 31 : Как получить доступ к графическому интерфейсу пользователя, используя SSH-соединение?
Вопрос 1 : Что такое SSH?
Ответ : Протокол Secure Shell сокращенно называется SSH.
Это безопасный и наиболее часто используемый протокол для доступа к удаленным серверам.
Этот протокол использует шифрование при передаче данных между двумя узлами.
Вопрос 2 : Какой номер порта по умолчанию используется для SSH?
Ответ : 22
#Port 22
Вопрос 3 : Что представляет собой конфигурационный файл для SSH-сервера?
Ответ : Конфигурационный файл для сервера SSH – это “/etc/ssh/sshd_config”.
Вопрос 4 : Что представляет собой конфигурационный файл для клиента SSH?
Ответ : Конфигурационный файл для клиента SSH – это “/etc/ssh/ssh_config”.
Вопрос 5 : Можно ли изменить номер порта SSH по умолчанию?
Ответ : Да, все знают номер порта SSH по умолчанию, а это порт 22.
В качестве меры безопасности, вы должны изменить номер порта с 22 на какой-нибудь другой открытый порт. Да!!! Это возможно.
Чтобы изменить порт SSH по умолчанию на 22, выполните следующие действия:
- Шаг 1 : Войдите на сервер под пользователем root.
- Шаг 2 : Откройте файл конфигурации SSH с помощью вашего любимого текстового редактора.
# vi /etc/ssh/sshd_config
Шаг 3 : Найдите директиву “Port”.
#Port 22
- Шаг 4 : Измените его значение на какой-нибудь другой незадействованный номер порта, например 2022.
- Шаг 5 : Сохраните файл.
- Шаг 6 : Перезапустите демон SSH.
# service sshd restart
Вопрос 6 : Как получить доступ к серверу по SSH без фактического пароля root? Возможно ли это?
Ответ : Конечно, это возможно. На удаленном сервере есть файл “authorized_keys” в домашней директории пользователей для добавления наших открытых ключей.
Для root этот файл находится в каталоге “/root/.ssh”.
Сгенерируйте ключи со своей локальной машины и загрузите их в этот файл.
Вы можете создать свою собственную пару ключей с помощью команды “ssh-keygen” с вашей Linux-машины.
Для windows вы можете использовать puttygen для создания закрытых открытых ключей.
🛡️ Как создать ключи ssh на Windows 10
🔒 Как преобразовать PEM в PPK с помощью puttygen
Как включить аутентификацию на основе ключей – Putty?
# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: d4:47:78:cf:41:75:eb:59:cc:67:b2:6d:1a:20:c0:2d root@vps.crybit.com The key's randomart image is: +--[ RSA 2048]----+ | ... .....o| | Eoo.. .oo| | ..o.oo.o*| | . o .+=+| | S ooo| | + | | . | | | | | +-----------------+
Добавьте открытый ключ в файл authorized_keys и перезапустите демон SSH. Вот и все!
Вопрос 7 : По каким-то причинам безопасности вам нужно отключить прямой вход root на ваш сервер? Что бы вы сделали?
Ответ : Если вы постоянно сталкиваетесь с атаками на уровне входа root, и вы хотите отключить полный вход root на вашем сервере.
Да, это возможно
. Для этого существует директива в конфигурационном файле SSH.
Конфигурационный файл приведен ниже:
PermitRootLogin
Измените его значение с “yes” на “no”.
Затем перезапустите демон SSH.
Вопрос 8 : Рассмотрим сценарий, в котором я хочу отключить прямой вход в систему root и разрешить моему пользователю доступ только к оболочке сервера.
Как вы настроите SSH conf для этого?
Ответ : Просто откройте конфигурацию SSH в вашем любимом текстовом редакторе и отключите вход root.
Этого можно добиться, следуя Вопросу 7.
Затем найдите директиву “AllowUsers” в конфигурационном файле.
Если ее там нет, добавьте ее и укажите там имя пользователя.
AllowUsers user1 user2
Вот и все! Не забудьте перезапустить демон SSH
Вопрос 9 : Подобно AllowUsers, можно ли управлять доступом к серверу для Linux групп?
Да, вы можете управлять им с помощью директивы “AllowGroups”.
AllowGroups group_1 group_2
Вопрос 10 : Итак, вы успешно разрешили доступ некоторым пользователям и группам. Теперь я хочу заблокировать доступ к SSH одному конкретному пользователю/пользователям и группе. Как вы настроите конфигурацию SSH для этого?
Ответ : Подобно AllowUsers и AllowGroups, вы можете запретить доступ пользователю/пользователям и группе/группам с помощью следующей директивы:
DenyUsers DenyGroups
Пример:
DenyUsers user1 user2 DenyGroups group1 group2
Вопрос 11 : В чем разница между SSH и Telnet? Что вы предпочитаете? И почему?
Ответ : И SSH, и Telnet – это сетевые протоколы для подключения и общения с другой машиной по сети.
Я предпочитаю SSH.
SSH | Telnet |
---|---|
связь между клиентом и сервером шифруется. | Не шифруется (простой текст). |
22 порт | 23 порт |
Безопасный | Небезопасно по сравнению с SSH |
SSH использует открытый ключ для аутентификации. | Telnet не использует аутентификацию. |
Вопрос 12 : Как включить отладку в команде ssh?
Ответ : Чтобы включить режим отладки, используйте переключатель “v” вместе с обычной командой SSH.
Чтобы увеличить уровень отладки, просто увеличьте количество v.
Пожалуйста, посмотрите пример:
# ssh user@host -v
Вопрос 13 : Пожалуйста, объясните различные протоколы для связи SSH.
Ответ : SSH имеет два протокола, протокол 1 и протокол 2.
Протокол 1 менее безопасен и устарел.
В настоящее время мы используем протокол 2!
Вы можете установить/изменить его в конфигурационном файле SSH.
Вопрос 14 : Как проверить информацию о версии сервера SSH из командной строки Linux?
Ответ : Вы можете узнать версию сервера SSH, выполнив следующую команду:
# ssh -V
Пример:
# ssh -V OpenSSH_8.7.1p1, OpenSSL 1.1.1д 24 Aug 2021
Вопрос 15 : Итак, вы можете подключиться к удаленному хосту с помощью команды SSH.
Как вы будете копировать файлы с помощью SSH? Возможно ли это?
Ответ : Да, это возможно. SCP – это команда, используемая для безопасной передачи файлов по сети. SCP основана на протоколе SSH и по умолчанию использует порт SSH.
Синтаксис
scp root@host:/home/itsecforu/* /home/itsecforu
Приведенная выше команда надежно копирует все файлы из каталога /home/itsecforu/ на удаленном хосте в каталог /home/itsecforu исходной машины.
Вопрос 16 : Ваш порт SSH не стандартный, в этом случае, будет ли вышеуказанная команда копирования SCP работать или нет?
Нет, не будет! Нам нужно указать фактический номер порта SSH для SCP-соединения. Вы можете использовать переключатель -P, чтобы указать порт SSH не по умолчанию.
Синтаксис
scp -P 2201 root@host:/home/itsecforu/* /home/itsecforu
Где 2201 – это порт SSH.
Вопрос 17 : Что сокращенно называется SCP?
Ответ : SCP расшифровывается как Secure Copy.
Вопрос 18 : Слышали ли вы про blowfish?
Ответ : Blowfish используется с командой SCP.
Он используется для увеличения скорости передачи данных.
По умолчанию scp использует шифр Triple-DES для шифрования копируемых данных.
Синтаксис
scp -c blowfish root@host:/home/itsecforu/* /home/itsecforu
Вопрос 19 : Можете ли вы кратко объяснить работу SCP?
Ответ : SCP расшифровывается как Secure Copy.
Он обеспечивает безопасную передачу файлов по сети. SCP основан на протоколе SSH и по умолчанию использует порт SSH.
Принцип работы
1. Клиент инициирует SSH-соединение с удаленным узлом и запрашивает запуск процесса SCP на удаленном узле.
2. Удаленный SCP-процесс может работать в двух режимах.
2.1 Режим источника
В этом режиме SCP на удаленном хосте считывает файлы с жесткого диска и отправляет их обратно на клиентскую машину.
2.3 Режим приемника
В этом режиме SCP на удаленном хосте принимает файлы, отправленные клиентом, и записывает их на диск.
Синтаксис такой же, как и у базовой команды копирования Linux.
Вопрос 20 : Часто используемые переключатели SCP?
Ответ : Мы уже объяснили использование переключателей “P” и “-c blowfish”.
Другие часто используемые переключатели – “r” “p” и “u”.
-p : Preserves modification times, access times, and modes from the original file. -r : Recursively copy entire directories. Note that scp follows symbolic links encountered in the tree traversal. -U : Remove source files after coping them to the destination.
Вопрос 21 : Что означает директива “AddressFamily” в конфигурации SSH?
Ответ : Эта директива используется для ограничения доступа SSH к определенной подсети.
Это повышает уровень безопасности.
Никто, кроме заданной подсети, не сможет получить доступ к серверу по SSH.
- Шаг 1 : Откройте файл конфигурации с помощью вашего любимого текстового редактора.
- Шаг 2 : Найдите “AddressFamily”.
- Шаг 3 : Добавьте информацию о предпочитаемой подсети.
AddressFamily 132.143.45.0/24
- Шаг 4 : Перезапустите демон SSH.
Вопрос 22 : Слышали ли вы команду “sshpass?”.
Ответ : Да! sshpass – это команда, которая позволяет нам вводить пароль в Linux CLI, интерфейс командной строки.
Она помогает задавать пароль SSH в скриптах автоматизации.
Синтаксис
# sshpass -p PaSsWoRd ssh root@remote.host
Вопрос 23 : Что такое Listen Address в конфигурации SSH?
Ответ : Эта директива указывает, какие интерфейсы на сервере готовы к подключениям извне.
Рассмотрим сценарий, ваш сервер имеет 6 различных IP-адресов, и вы хотите настроить SSH таким образом, чтобы разрешить доступ SSH только определенному IP-адресу.
Как это сделать?
- Шаг 1 : Откройте файл конфигурации SSH.
- Шаг 2 : Добавьте IP-адрес:
ListenAddress 125.120.11.00 (Example)
- Шаг 3 : Перезапустите демон SSH.
Вопрос 24 : Какое назначение имеет параметр “LoginGraceTime?”.
Ответ : По умолчанию его значение равно 2 минутам.
Это означает, что когда вы получаете доступ к серверу с помощью SSH, у вас есть 2 минуты, чтобы завершить соединение с точными учетными данными.
Синтаксис
LoginGraceTime 2m
Вопрос 25 : Какое назначение имеет параметр “MaxAuthTries?”.
Ответ: Определяет максимальное количество разрешенных неудачных попыток входа в систему.
Вопрос 26 : Как перезапустить демон SSH?
Ответ : CentOS/RHEL версии до 6
# /etc/init.d/sshd restart или # service sshd restart
Более новые версии:
# service sshd restart
Вопрос 27 : Как проверить состояние демона SSH?
Ответ : CentOS/RHEL версии до 6
# /etc/init.d/sshd status или # service sshd status
Более новые версии:
# service sshd status
Вопрос 28 : Как ограничить полосу пропускания, используемую командой scp?
Ответ : Это можно сделать с помощью переключателя “l”.
Синтаксис приведен ниже:
# scp -l bandwidth_limit root@host:/home/itsecforu/* /home/itsecforu
Вопрос 29 : Как создать баннер для отображения текстов при входе на сервер через SSH?
Ответ :В конфигурационном файле SSH есть директива для указания файла баннера.
Эта директива называется “Banner”.
Как это сделать?
- Шаг 1 : SSH на сервер от имени пользователя root.
- Шаг 2 : Создайте файл с желаемыми текстами в любом месте.
# vi /etc/ssh/mybanner.txt This server is for authenticated users... Your activities are under surveillance.
- Шаг 3 : Откройте файл конфигурации SSH.
- Шаг 4 : Найдите “Banner”.
- Шаг 5 : Добавьте местоположение файла:
Banner /etc/ssh/mybanner.txt
- Шаг 6 : Перезапустите демон SSH.
Более подробно:
🕵️♂️ Как отобразить баннер/сообщение перед аутентификацией OpenSSH
Вопрос 30 : Что вы подразумеваете под шифром SSH? Каковы различные типы шифров в SSH?
Ответ : Шифр – это алгоритм для выполнения шифрования и дешифрования. В SSH поддерживаются следующие различные типы шифров:
blowfish des 3des
Вопрос 31 : Как получить доступ к графическому интерфейсу пользователя, используя SSH-соединение?
Ответ : SSH также поддерживает передачу переадресации X11, мы должны использовать опции под названием -XY для открытия GUI приложения сервера с клиента.
Пожалуйста, сообщите мне ваши предложения в комментариях.
п.14
ахинею какую-то написали.
с чего бы это вдруг команда *ssh* выдаст версию сервера?
ssh -V
https://itsecforu.ru/wp-content/uploads/2023/03/ssh-v.png