UR4QTP: записная книжка 

На главную

МикроHowTo

ssh – настройка доступа к серверу по ключам

Пусть клиентская машина имеет имя cli0 (это может быть и IP-адрес), а сервер – srv0.

  1. На cli0 и srv0 уже должен быть установлен ssh.
  2. На cli0 выполнить команду:

    $: ssh-keygen -t rsa

    принять все значения по умолчанию, passphrase оставить пустым.
  3. На srv0 должен существовать файл ~/.ssh/authorized_keys, исполняемый, с соответствующим владельцем и группой.
  4. На cli0 выполнить команду:

    $: ssh-copy-id -i ~/.ssh/id_rsa.pub user@srv0

    Для доступа на srv0 придётся ввести соответствующий пароль.
    Аналогично для доступа на другой сервер нужно ввести:

    $: ssh-copy-id -i ~/.ssh/id_rsa.pub user@srv1

    (Несколько неясный для меня момент. Получается, что с одним и тем же ключом мы заходим на разные серверы. Безопаснее было бы иметь для каждого сервера свой ключ. Но я не нашёл пока, как это правильно реализовать).

  5. Не обязательно, но повысит безопасность редактирование на srv0 файла ~/.ssh/authorized_keys. В его начало перед сигнатурой нужно вписать from="cli0" и поставить пробел, далее оставить как было.

В качестве cli0 и srv0 можно использовать как IP-адреса, так и имена. В этом случае соответствие имён адресам должно быть правильно указано в файле /etc/hosts.

Если на cli0 установлен Debian 8 (Jessie), 7 (Wheezy) или 6 (Squeeze), данный способ вполне работоспособен, в 5-м (Lenny) всё равно требуется вводить пароль при каждом подключении. Почему так, я не знаю.

Дополнение

После обновления ssh на сервере возможна смена ключей. При этом клиент теряет доступ к серверу по ssh без пароля, с помощью обмена ключами. Работоспособен такой вариант решения проблемы:

  1. на cli0 убрать/переименовать файл ~/.ssh/known_hosts.
  2. команда

    $: ssh user@srv0

    попросит ввести пароль пользователя user на srv0.

После этого происходит обмен ключами, и доступ с их помощью восстанавливается.

Ещё дополнение

Если на удалённом компьютере при работе, к примеру, с mc вместо русских букв отображаются «кракозябры» или ещё какая левизна, можно попробовать выполнить на том же удалённом компьютере

#: export LANG=C
#: export LC_ALL=C

Достаточно выполнить это один раз – и получить эффект навсегда. Начиная с 6-го Debian такой проблемы я не встречал, но в более ранних дистрибутивах она иногда вылезала.

2010-03-11…2017-12-09.


МикроHowTo

На главную

 UR4QTP: записная книжка