Документация
Поиск

EmerSSH logo

EmerSSH

EmerSSH система для инфраструктуры открытых ключей (PKI) и список управления доступом(en) управления (ACL) на блокчейне Emercoin.

Можно создать мост между OpenSSH и блокчейном криптовалюты Emercoin. Результатом является удобный, безопасный и очень гибкий способ входа на несколько серверов с использованием протокола SSH.

Простая программа EmerSSH обеспечивает мост между OpenSSH и блокчейном Emercoin, обеспечивая безопасное децентрализованное управление PKI. Когда OpenSSH настроен для обращения к EmerSSH , программа будет запрашивать блокчейн Emercoin для получения учетных данных SSH во время процесса аутентификации.

Пользователи могут управлять своими собственными учетными данными (открытыми ключами), отправляя и изменяя записи в цепочке блоков EMC (с помощью стандартного графического интерфейса Emercoin или демона командной строки. Аналогичным образом администраторы могут управлять группами пользователей для своих служб, которые могут содержать ссылки на другие группы как а также отдельных пользователей, что позволяет создавать рекурсивные деревья аутентификации.

EmerSSH работает под аббревиатурой «ssh» в Emercoin NVS . Записи считаются безопасными и неизменными из-за безопасности, обеспечиваемой блокчейном Emercoin .

Установка

Ниже приведены инструкции по установке и настройке EmerSSH на Debian и производных серверах, таких как Ubuntu, а также по использованию EmerSSH для входа на сервер с клиентского компьютера. Мы предполагаем, что на вашем сервере уже запущен кошелек Emercoin.

Установка необходимых пакетов на сервер

Сначала обновите существующее программное обеспечение:

$ apt-get update
$ apt-get dist-upgrade

Теперь установите curl и jansson:

$ apt-get install libcurl4-openssl-dev libjansson-dev

Далее вам необходимо скачать и установить последнюю версию EmerSSH :

$ wget https://github.com/emercoin/emcssh/archive/0.0.4.tar.gz  (change to whatever is the latest release)
$ tar xfz 0.0.4.tar.gz
$ cd EmerSSH-0.0.4
$ make
$ make install

Настройка EmerSSH

Теперь вам нужно отредактировать файл конфигурации /usr/local/etc/emercoin/EmerSSH.conf и изменить настройку для emcurl. Настройки должны совпадать с настройками в вашем файле emercoin.conf .

$ nano /usr/local/etc/emercoin/EmerSSH.conf

Измените значение для emcurl:

emcurl http://emccoinrpc:[email protected]:6662/

Значения emccoinrpc и rpcpassword должны быть взяты из вашего файла emercoin.conf . Остальные параметры можно оставить как есть.

Важно: EmerSSH.conf файл должен иметь права на чтение и запись только для пользователя root. Не изменяйте разрешения для этого файла, поскольку он содержит расширение rpcpassword.

Затем вам нужно отредактировать файл конфигурации sshd, но у Debian есть небольшая проблема в том, что версия sshd может быть слишком старой и ее сначала необходимо обновить. Пользователи других операционных систем могут пропустить следующий шаг.

Обновите OpenSSH в Debian

Для начала узнаем, какая версия OpenSSH установлена:

$ sshd -v

В ответ мы получаем следующее сообщение:

unknown option -- v
OpenSSH_6.1p1 Debian

Если версия 6.2 или выше, следующий шаг можно пропустить. В противном случае обновите:

$ nano /etc/apt/sources.list

Добавьте в конец строки и сохраните файл:

$ deb http://ftp.debian.org/debian/ wheezy-backports main non-free contrib

Обновите систему:

$ apt-get update

и установите sshd:

$ apt-get -t wheezy-backports install openssh-server

Сценарий установки спрашивает, отключить ли аутентификацию по паролю. Лучший ответ - не иметь возможности входить в систему традиционным способом.

Кроме того, пользователям Debian нужно будет изменить расположение файла EmerSSH:

$ mv /usr/local/sbin/EmerSSH /usr/sbin/EmerSSH

Настроить OpenSSH

Теперь нам нужно отредактировать файл конфигурации sshd_config:

$ nano /etc/ssh/sshd_config

Необходимо добавить несколько строк:

Для Debian:

AuthorizedKeysCommand /usr/sbin/EmerSSH
AuthorizedKeysCommandUser root

Для других операционных систем:

AuthorizedKeysCommand /usr/local/sbin/EmerSSH
AuthorizedKeysCommandUser root

Теперь перезапустите sshd с новой конфигурацией:

$ kill -HUP `cat /var/run/sshd.pid`

Создайте пару ключей SSH

Теперь нам нужно сгенерировать пару ключей для пользователя. В Linux просто введите следующую команду:

$ ssh-keygen -t rsa -b 4096 -C "@your-username"

Если пользователь работает под Windows, мы рекомендуем использовать PuTTYgen .

Запустите PuTTYgen, измените количество бит на 4096 и нажмите «Generate» .

PuTTYgen

Интенсивно водите курсором мыши по экрану во время генерации ключа, после чего вы должны увидеть что-то вроде этого:

PuTTYgen

Нажмите «Save Private Key» и сохраните ключ на своем компьютере. Защита паролем не нужна, поэтому вы можете согласиться на сохранение без пароля.

Добавьте открытый ключ в Emercoin NVS

Затем нам нужно добавить открытый ключ (выделенный для Windows на рисунке выше) в Emercoin NVS в виде пары имя-> значение . Сделайте это в своем кошельке Emercoin на своем ПК. В поле name укажите:

ssh:<your_username>

В поле value вставьте свой открытый ключ от PuTTYgen. Поле new address можно оставить пустым. Укажите количество дней и нажмите «Submit».

Emercoin Wallet

Теперь нам нужно дождаться подтверждения нашей транзакции. Чтобы сэкономить время при ожидании подтверждения, теперь вы можете вернуться на свой сервер и добавить нового пользователя в файл EmerSSH_keys :

$ cd $HOME/.ssh/
$ nano EmerSSH_keys

В документе просто добавьте своего пользователя с помощью @. В моем случае это:

@kamillo

Сохраните и закройте файл.

Следует отметить, что технология EmerSSH от Emercoin позволяет использовать не только отдельных пользователей, но и целые группы. Допустим, вы хотите предоставить доступ к своим серверам трем другим людям. Вы можете индивидуально добавить всех пользователей в файл EmerSSH_keys , но это неудобно, потому что каждый раз, когда вы добавляете или удаляете пользователя, вам нужно будет редактировать этот файл на всех серверах. Однако есть более универсальный и простой способ. Просто создайте запись в блокчейне Emercoin, например kamilloFriends, и перечислите всех своих друзей. Поля для такой записи следующие:

"name" : "ssh:kamilloFriends"
"value" : "@kamillo|@friend1|@friend2|@friend3"

Если вам нужно добавить или удалить кого-то из группы, достаточно будет сделать Name_Update для этой записи в кошельке Emercoin. Таким образом, если в файле EmerSSH_keys я укажу группу @kamilloFriends, система сможет авторизовать любого из моих друзей.

Проверка работоспособности

Чтобы убедиться, что все работает должным образом, выполните следующую команду:

$ EmerSSH <username>

На моем тестовом сервере я работаю от пользователя root, поэтому команда для моего имени пользователя будет:

$ EmerSSH root

В ответ мы получаем следующее сообщение:

#INFO: verbose=2; maxkeys=4096 recursion=30 EmerSSH_keys=/root/.ssh/EmerSSH_keys; [email protected]:8775/
#Path=/
#Path=/kamillo/
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAgEAgmzL............

Как и ожидалось. Все работает. Теперь попробуем авторизоваться.

Не закрывая текущий сеанс, разрешите PuTTY войти в систему без пароля. Для этого откройте новое окно PuTTY, введите IP-адрес вашего сервера, затем перейдите к SSH> Auth в PuTTY:

PuTTY

Нажмите Browse ... и укажите путь к вашему закрытому ключу.

На вкладке Connection> Data мы можем указать пользователя, под которым мы хотим подключиться. Если не указано иное, не беспокойтесь - в этом случае сервер запросит имя пользователя при подключении.

PuTTY

Нажмите «Open» и подключитесь к серверу. Если он подключается, поздравляю, у вас все получилось!

Если по какой-либо причине соединение не удается, откройте окно предыдущего сеанса и введите следующую команду:

$ cat /var/log/auth.log

Внимательно ищите там сообщения об ошибках и ищите решения проблемы. И если вы не можете это исправить, обратитесь за помощью.

Наконец, вот еще одна полезная команда, которая показывает, когда посетители входят в систему:

$ grep "Accepted publickey" /var/log/auth.log

Дополнительная информация для пользователей MacOS X

Чтобы иметь возможность войти на сервер с поддержкой EmerSSH через терминал в OS X, вам сначала необходимо преобразовать свой закрытый ключ в желаемый формат. Конвертирование делал в Windows через программу PuTTYgen. Лучше установить пароль для вашего ключа, так как OS X будет жаловаться на это (в будущем вам нужно будет вводить пароль только один раз).

Запускаем PuTTYgen, нажимаем Load и выбираем наш ключ * .ppk. Затем установите пароль в Key passphrase и Confirm passphrase. Переходим во вкладку Conversions и экспортируем ключ в формате OpenSSH:

PuTTY

Теперь мы хотим добавить ключ в систему OS X. Откройте терминал и перейдите в папку, в которую вы экспортировали ключ. У меня есть папка Ключи:

$ cd Keys

Установите ключ только для чтения, иначе система пожалуется:

$ chmod 0400 <your_key_file>

Добавьте ключ:

$ ssh-add <your_key_file>

В ответ мы получаем сообщение о том, что идентификатор был добавлен. Проверяем соединение командой:

$ ssh root@<your_server_ip>

Если сервер не запрашивает пароль, значит, все в порядке.

Больше информации

  1. См. Следующую статью о среде: Что такое EmerSSH? FAQ(Eng) .