GNU/Linux
Безопасная оболочка (SSH)
Поиск…
Вступление
Защищенная оболочка используется для удаленного доступа к серверу от клиента по зашифрованному соединению. OpenSSH используется как альтернатива соединениям Telnet, которые обеспечивают удаленный доступ к оболочке, но не зашифрованы. Клиент OpenSSH по умолчанию установлен в большинстве дистрибутивов GNU / Linux и используется для подключения к серверу. В этих примерах показано, как использовать пакет SSH для приема SSH-соединений и подключения к другому хосту.
Подключение к удаленному серверу
Чтобы подключиться к серверу, мы должны использовать SSH на клиенте следующим образом:
# ssh -p port user@server-address
- port - прослушивающий ssh-порт сервера (порт 22 по умолчанию).
- user - должен быть существующий пользователь на сервере с привилегиями SSH.
- адрес сервера - IP / Domain сервера.
Для примера в реальном мире можно сделать вид, что вы создаете сайт. Компания, которую вы решили разместить на своем сайте, сообщает вам, что сервер находится на веб- сервере www.servers.com на пользовательском порту 2020 года, и ваше имя учетной записи usr1 выбрано для создания пользователя на сервере с привилегиями SSH. В этом случае используемая команда SSH была бы такой
# ssh -p 2020 [email protected]
Если имя учетной записи в удаленной системе совпадает с именем локального клиента, вы можете оставить имя пользователя выключенным. Поэтому, если вы используете usr1
для обеих систем, тогда вы просто используете web-servers.com
вместо [email protected]
.
Когда сервер, к которому вы хотите подключиться, напрямую не доступен для вас, вы можете попробовать использовать переключатель ProxyJump для подключения к нему через другой доступный вам сервер и можете подключиться к желаемому серверу.
# ssh -J [email protected]:2020 [email protected] -p 2222
Это позволит вам подключиться к серверу 10.0.0.2 (запуск ssh на порту 2222) через сервер в 10.0.0.1 (запуск ssh на порту 2020). Конечно, вам понадобятся учетные записи на обоих серверах. Также обратите внимание, что переключатель -J представлен в версии 7.3 для OpenSSH.
Установка пакета OpenSSH
Оба подключения к удаленному SSH-серверу и прием SSH-соединений требуют установки openssh
Debian:
# apt-get install openssh
Arch Linux:
# pacman -S openssh
Yum:
# yum install openssh
Создание открытого и закрытого ключа
Чтобы создать ключи для клиента SSH:
ssh-keygen [-t rsa | rsa1 | dsa ] [-C <comment>] [-b bits]
Например:
ssh-keygen -t rsa -b 4096 - C [email protected]
Место по умолчанию - ~/.ssh/id_rsa
для частного и ~/.ssh/id_rsa.pub
для открытого ключа.
Для получения дополнительной информации, пожалуйста, посетите man.openbsd.org
Настройка сервера SSH для приема соединений
Сначала мы должны отредактировать файл конфигурации демона SSH. Хотя в разных дистрибутивах Linux это может быть расположено в разных каталогах, обычно оно хранится в /etc/ssh/sshd_config
Используйте текстовый редактор, чтобы изменить значения, установленные в этом файле, все строки, начинающиеся с #, закомментированы и должны удалить этот символ, чтобы он вступил в силу. Список рекомендаций следует как таковой.
Port (chose a number between 0 - 65535, normaly greater than four digits)
PasswordAuthentication yes
AllowUsers user1 user2 ...etc
Обратите внимание, что предпочтительнее отключать логины паролей вместе и использовать SSH-ключи для повышения безопасности, как описано в этом документе.
Отключить службу ssh
Это отключит службу на стороне сервера SSH, так как это необходимо, это гарантирует, что клиенты не смогут подключиться через ssh
Ubuntu
sudo service ssh stop
Debian
sudo /etc/init.d/ssh stop
Arch Linux
sudo killall sshd
Соединение без пароля (с использованием пары ключей)
Прежде всего, вам понадобится пара ключей. Если у вас его еще нет, взгляните на раздел «Создать тему для публичного и частного ключей».
Ваша пара ключей состоит из частного ключа (id_rsa) и открытого ключа (id_rsa.pub). Все, что вам нужно сделать, это скопировать открытый ключ на удаленный хост и добавить его содержимое в файл ~/.ssh/authorized_keys
.
Один простой способ сделать это:
ssh <user>@<ssh-server> 'cat >> ~/.ssh/authorized_keys' < id_rsa.pub
После того, как открытый ключ правильно помещен в домашний каталог вашего пользователя, вам просто нужно войти в систему, используя соответствующий закрытый ключ:
ssh <user>@<ssh-server> -i id_rsa