Для каждого Системного Администратора SSH звучит доверительно. SSH - защищенный сетевой протокол сеансового уровня, поддерживающий различные алгоритмы шифрования. С помощью SSH можно удалено управлять операционной системой, тунелировать TCP-соединения. SSH позволяет безопасно передавать в незащищенной среде практически любой сетевой протокол. Достоинств огромное количество! В повседневной работе приходится постоянно поключаться к различным устройствам, используя SSH, соответственно, вводить адреса устройств, параметры подключения и пароли. По природе лени хочется все это систематизировать и автоматизировать.
Вот этим и займемся сегодня.
Для начала создадим алиасы устройств - вместо длинной записи ssh -l user 192.168.0.1 будем использовать, например, ssh router. Красиво и эстетично! Для организации такой красоты достаточно создать конфигурационный файл SSH (если у вас его еще нет).
user$ mkdir ~/.sshuser$ cd ~/.sshguser$ nano conf i
Примерно такого содержания
Host routerHostName 192.168.0.1User user Port 22
Немного поясню:
- Host - наш алиас к устройству, по которому будем вызывать
- HostName - имя или IP адрес устройства
- User - имя пользователя для подключения к устройству
- Port - номер порта SSH, если переопределено
Каждый алиас необходимо прописать соответствующим блоком, например, можно создать алиасы к одному устройству с разными именами пользователей. Теперь можно вызывать ssh router. Параметры для подключения к устройству router считаются из конфигурационного файла, который мы только что создали. Замечательно! Далее настроим, чтоб при подключении удаленное устройство не спрашивало пароль. Для таких целей достаточно создать пару RSA ключей и один из них поместить на удаленное устройство.
Можно генерировать пару RSA ключей
user$ ssh-keygen -t rsa
Отвечаем на несколько вопросов - нажимаем Enter ;-)
Generating public/private rsa key pair.Enter file in which to save the key (/home/user.ssh/id_rsa): <-EnterEnter passphrase (empty for no passphrase): <-EnterEnter same passphrase again: <-EnterYour identification has been saved in /home/user/.ssh/id_rsa.Your public key has been saved in /home/user/.ssh/id_rsa.pub.:01:be:9b user@desktopThe key fingerprint is: b6:a0:23:59:54:79:67:44:0f:e8:24:6b:5 bThe key's randomart image is: +--[ RSA 2048]----+ | o++=*o || | = + o| . .oo.oo | | + o o. | | . = | | o + S | | E o . | | . . | | | +-----------------+
Пара RSA ключей готова, теперь публичный ключ необходимо передать на удаленное устройство. Но перед этой операцией проверим настройки на удаленном устройстве /etc/ssh/sshd_config.
Ищем нужный нам параметр, должно быть так
..RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile %h/.ssh/authorized_keys..
Параметр AuthorizedKeysFile предписывает, что принятые ключи будут храниться для каждого пользователя отдельно. Можно еще добавить следующие опции, хуже от этого не будет:
- PermitRootLogin no - разрешается ли пользователю root логиниться по SSH. Лучше запретить, при необходимости права себе можно повысить, например, sudo.
- PermitEmptyPasswords no - разрешить использовать пустые пароли. Даже не знаю для чего такую опцию оставили, если только для лабораторных отладок.
- AllowUsers - указывает список пользователей, под которыми можно входить по SSH. Очень полезная опция! Если таковой нет в вашем конфиге - создайте ее. Формат AllowUsers user1 user2. В качестве логинов можно указывать user1@example.com (или user1@192.168.0.22), позволит логиниться пользователю user1 только с адреса example.com и 192.168.0.22
- Port - указывает прослушиваемый демоном SSHD порт. По-умолчанию - 22, для повышения безопасности лучше сменить его на что-то выходящее за пределы 1024 или еще лучше, за пределы 10000. К примеру поставить 55555, легко запоминается, а вот nmap'ом не просканишь.
Все готово. Передаем ключ на удаленное устройство.
user$ ssh-copy-id router
После успешного прохождения аутентификации ключ будет передан на удаленное устройство
Now try logging into the machine, with "ssh 'router'", and check in:.ssh/authorized_keysadded extra keys that you weren't expecting.to make sure we haven' t
Пробуем подключится
user$ ssh router
Подключение успешно. Теперь подключаться к настроенным удаленным устройствам одно удовольствие. Вводим одну короткую команду и вуаля - вы уже управляете удаленным устройством. Надо заметить, что при подключении с другого устройства вам необходимо ввести все параметры подключения и пароль, но никто не запрещает вам повторить выше описанную процедуру и с этим устройством. Если, конечно, это необходимо. Приятной работы.
Комментариев нет:
Отправить комментарий