Замена openssh на lsh в Debian/Ubuntu

()

В предыдущей статье было показано как организовать OpenVPN-сервер на маломощном VDS. Однако описаное решение нормально работает при подключении трёх-пяти клиентов и дальнейшее увеличение числа клиентов упирается в оперативную память. Для решения этой проблемы можно либо менять тарифный план VDS на более дорогой, либо каким-либо образом освобождать память.

Автор этих строк выбрал второй способ. Поскольку список запущеных процессов не такой уж и большой выявить "кандидатов на замену" не составило труда. Выбор пал на ssh-сервер, который потреблял до десяти мегабайт памяти, в то время как реально был нужен не чаще раза в месяц. В качесве замены было решено использовать GNU-реализцию SSH-сервера lsh, которая потребляла не более двух мегабайт памяти. Далее будут описаны подробности этой миграции.

В самом простом случае для замены openssh-server на lsh-server в Debian/Ubuntu достаточно команд:

apt-get install lsh-server
invoke-rc.d ssh stop
invoke-rc.d lsh-server restart

После этого можно заходить на сервер по SSH. Однако если ранее была настроена авторизация по ключам - её придётся перенастроить. Так же по умолчанию в lsh отключена поддержка sftp. Начинаем преодолевать эти препятствия: для включения подсистемы sftp нужно изменить значение параметра "ENABLE_SFTP" в файле /etc/default/lsh-server с "false" на "true" и перезапустить процесс командой:

invoke-rc.d lsh-server restart

Переходим к авторизации по ключам. Дело в том что lsh не использует файл authorized_keys от openssh, а использует своё хранилище публичных ключей. Кроме того сохраняются эти ключи так же в отличном от openssh виде.

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

scp .ssh/id_rsa.pub user@server:/home/user/

Далее нужно залогиниться на сервер и сконвертировать ключ в пригодный для lsh формат командой:

cat id_rsa.pub | ssh-conv > lsh_key_pub

Команда ssh-conv поддерживает работу как с RSA, так и с DSA-ключами. Далее нужно создать (если ещё не была создана) директорию ~/.lsh/authorized_keys_sha1, в которой будут хранится SHA1-хэши ключей. Добавить в неё ключ можно командой:

lsh-authorize lsh_key_pub

После этого на сервере можно авторизовываться по ключу. Более подробно об использовании lsh можно почитать в официальной документации проекта.

На этом всё. Приятной работы!

Ключевые слова: lsh, lshd, ssh, openssh.

Комментарии:

morbo 2010-03-01 07:19:01 (#)

Тоже недавно задумался о том, чтобы заменить openssh на gnu ssh. Однако повод другой - убрать python из системы. У меня на компьютере от python зависят только openssh, ssl-cert, exfalso и cups. В openssh есть скрипт на питоне, который проверяет ssl-сертификаты и ключи по чёрному списку, вот этот скрипт и тянет за собой python.

Опечатка: "SAH1-хэши".

MooSE 2010-03-01 09:19:30 (#)

опечатку поправил.

ты на клиентской машине хочешь заменить? там тоже есть некоторые особенности при миграции.

и кстати от ssl-cert избавиться вроде как практически не реально...

Diffor 2010-03-01 17:13:49 (#)

>либо меня тарифный
либо менять тарифный

>замены быо решено
замены было решено

>которая потребляля не более
которая потребляла не более

>ftp. Начнинаем преодолевать
ftp. Начинаем преодолевать

то, что бросилось в глаза...

MooSE 2010-03-02 00:41:17 (#)

Спасибо. Поправил.

Anonymous 2010-03-09 22:28:32 (#)

а dropbear не устроил бы?

Anonymous 2010-03-10 07:34:09 (#)

MooSE, это домашняя машина, на ней есть ssh-сервер. Вот сервер в первую очередь и хотел заменить, или выпилить из него питоновский сценарий.

morbo 2010-03-10 07:34:50 (#)

Предыдущий аноним - это я.

Anonymous 2010-04-02 16:35:57 (#)

>invoke-rc.d ssh stop
рискуешь остаться совсем без руля. лучше сначала lsh на другой порт повесить, убедиться, что работает, а потом уж ssh stop

>а dropbear не устроил бы?
а он с openssh-клиентом работает?

MooSE 2010-04-02 22:36:10 (#)

Цитата:

рискуешь остаться совсем без руля. лучше сначала lsh на другой порт повесить, убедиться, что работает, а потом уж ssh stop


VPS можно ребутнуть. Тогда ssh вернётся..
Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE