Что такое SSH?
SSH означает Secure Shell (безопасная оболочка). С помощью SSH вы можете безопасно получать доступ к удаленным машинам, так как соединение шифруется. С помощью команды ssh в терминале Linux мы можем подключаться к удаленным серверам Linux и работать так, как будто это наш собственный компьютер. К концу этого руководства вы будете полностью понимать, как использовать SSH для подключения к удаленному серверу в Ubuntu.
Синтаксис
Синтаксис — это правило использования команды ssh. Вы можете изменять порядок параметров, но необходимо соблюдать определенный формат. Ниже приведен пример синтаксиса для использования команды ssh:
|
1 |
ssh remote_host |
Доменное имя или IP-адрес, к которому вы хотите подключиться, — это remote_host, как показано в команде выше. Этот синтаксис предполагает, что ваше имя пользователя в удаленной системе совпадает с именем в локальной системе. Однако, если имена пользователей различаются, вы можете указать это с помощью следующей команды:
|
1 |
ssh remote_username@remote_host |
Вам потребуется подтвердить свою личность, введя пароль сразу после подключения к серверу. Введите команду exit, чтобы вернуться к локальному сеансу.
Как настроить SSH
Основной конфигурационный файл sshd в Ubuntu находится по адресу /etc/ssh/sshd_config. Если вы измените конфигурацию SSH, настройки сервера SSHD изменятся автоматически. Перед внесением любых изменений обязательно сделайте резервную копию текущей версии файла с помощью этой команды:
|
1 |
sudo cp /etc/ssh/sshd_config{,.bak} |
Используйте текстовый редактор, чтобы открыть его:
|
1 |
sudo nano /etc/ssh/sshd_config |
Большинство параметров в этом файле следует оставить без изменений. Однако есть несколько вещей, на которые стоит обратить внимание:
|
1 |
Port 22 |
Объявление порта указывает порт, на котором сервер SSHD ожидает подключений. По умолчанию используется порт 22. Если нет особых причин, менять эту настройку не нужно:
|
1 2 3 |
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key |
Объявление ключа хоста указывает, где находится глобальный ключ хоста:
|
1 2 |
SyslogFacility AUTH LogLevel INFO |
Уровень логирования, который должен выполняться, указывается этими двумя элементами. Если у вас возникли проблемы с использованием SSH, отличный способ выявить проблему — увеличить уровень детализации логов:
|
1 2 3 |
LoginGraceTime 120 PermitRootLogin yes StrictModes yes |
Эти параметры определяют некоторую информацию для входа, чтобы предотвратить несанкционированный доступ в случае, если конфигурационные файлы небезопасны:
|
1 2 |
X11Forwarding yes X11DisplayOffset 10 |
Эти конфигурации параметров относятся к функциям перенаправления X11 (X11 forwarding). Таким образом, вы можете отображать графический интерфейс удаленной системы на локальной системе. Вы должны включить эту опцию на сервере при подключении с опцией -X к SSH-клиенту.
После внесения изменений сохраните файл и закройте его, нажав CTRL-X, затем Y и Enter. Если вы измените настройки в /etc/ssh/sshd_config, вам необходимо перезапустить сервер sshd, чтобы изменения вступили в силу:
|
1 |
sudo service ssh restart |
Для систем с systemd, таких как Ubuntu 16.04 или Debian Jessie, используйте эту команду:
|
1 |
sudo systemctl restart ssh |
Tщательно протестируйте внесенные изменения, чтобы убедиться, что все работает идеально. При внесении изменений рекомендуется держать несколько сессий активными. Таким образом, вы сможете восстановить конфигурацию в случае необходимости.
Как войти по SSH с помощью ключей? Входить в удаленную систему по паролю — это нормально. Однако лучше всего настроить аутентификацию на основе ключей.
Что такое аутентификация на основе ключей?
Аутентификация на основе ключей создает две пары ключей, называемые закрытым и открытым ключами. Закрытый ключ находится на компьютере пользователя, он защищен и хранится в секрете. Открытый ключ может быть доступен кому угодно или сохранен на любом сервере, к которому вы хотите получить доступ. Если вы пытаетесь подключиться с помощью пары ключей, сервер использует открытый ключ для генерации сообщения для компьютера пользователя. Пользователь может прочитать сообщение только с помощью закрытого ключа. Затем компьютер пользователя отправляет ответ обратно на сервер, и сервер понимает, что пользователь является подлинным. После настройки ключа весь процесс автоматически завершается в фоновом режиме.
Как создать ключи SSH
Ключи SSH должны быть сгенерированы на компьютере, с которого вы хотите войти в систему. Обычно это ваш локальный компьютер. Введите в командную строку следующее:
|
1 |
ssh-keygen -t rsa |
Затем примите значения по умолчанию, нажав клавишу ENTER. Ключи будут сгенерированы в ~/.ssh/id_rsa.pub и ~/.ssh/id_rsa. Затем введите команду ниже, чтобы перейти в каталог .ssh:
|
1 |
cd ~/.ssh |
Вот права доступа к файлам:
|
1 |
ls -l |

Как видите, только владелец может читать и записывать файл id_rsa. Поэтому вы должны хранить его в безопасности. Однако вы можете поделиться файлом id_rsa.pub и установить соответствующие права доступа для этого действия. Следующим шагом является перенос открытого ключа на сервер с использованием следующего синтаксиса:
|
1 |
ssh-copy-id remote_host |
Это запустит сессию SSH, и вам нужно будет использовать пароль для аутентификации. После ввода пароля ваш открытый ключ будет скопирован в файл авторизованных ключей сервера, чтобы в следующий раз вы могли войти без пароля.
Как отключить аутентификацию по паролю
Если ключ SSH сгенерирован, вы можете повысить безопасность сервера, отключив аутентификацию только по паролю. Вы сможете входить на сервер, используя закрытый ключ при установленном на сервере открытом ключе, вместо использования консоли.
Примечание: Перед тем как перейти к этому шагу, убедитесь, что вы установили открытый ключ на сервере. В противном случае вы будете заблокированы!
Откройте конфигурационный файл sshd с помощью этой команды:
|
1 |
sudo nano /etc/ssh/sshd_config |
Найдите и раскомментируйте строку проверки аутентификации по паролю, удалив символ # в начале. Затем вы можете изменить значение на “no”:
|
1 |
PasswordAuthentication no |
Параметры PubkeyAuthentication и ChallengeResponseAuthentication установлены по умолчанию и должны выглядеть следующим образом:
|
1 2 |
PubkeyAuthentication yes ChallengeResponseAuthentication no |
Вам не следует изменять эти две настройки. После внесения изменений сохраните файл и закройте его. Затем используйте команду ниже для перезапуска демона SSH:
|
1 |
sudo systemctl restart ssh |
Наконец, вы отключили аутентификацию по паролю, и доступ к вашему серверу теперь возможен только с помощью аутентификации по ключу SSH.
Заключение
В этом руководстве мы показали вам, как использовать SSH для безопасного подключения к удаленному серверу в Ubuntu. Изучение того, как использовать SSH, является фундаментальным, если вы являетесь системным администратором, поэтому после освоения этого руководства вы можете перейти к более продвинутым функциям SSH.
Приятной работы!
Комментарии
Комментариев пока нет. Будьте первым.