Hi!
Установил последний openssh. Все по умолчанию, стало все нормально, но свои рабочие конфиги и ключи он установил в /usr/local/etc/. Система FreeBSD 4.4 и уже у нее (наверное по умолчанию) был тоже установлен ssh но в /etc/ssh/ (а пока переименовал эту директорию, чтобы грузился полностью новый ссш, а может стоило просто в нее переместить новые файлы?). Тк. он был отключен в rc.conf, то раньше ничего не конфликтовало, но теперь когда я в rc.conf записал
sshd_enable="YES"
sshd_program="/usr/local/sbin/sshd"
sshd_flags="-f /usr/local/etc/sshd_config"то при старте ссш когда начинает генерировать ключи - пытается их записать по старому пути /etc/ssh и соответсвенно выдает ошибку (такой директории сейчас нет).
Как указать новый путь или что я сделал не так? Просьба не прикалываться, да может это элементарно, но я хочу разобраться как правильно "совместить" (или разделить) эти разные конфигурации.
Подскажите, плиз!Всего хорошего!
Dmitry.
>Hi!
>Установил последний openssh. Все по умолчанию,
>стало все нормально, но свои
>рабочие конфиги и ключи он
>установил в /usr/local/etc/. Система FreeBSD
>4.4 и уже у нее
>(наверное по умолчанию) был тоже
>установлен ssh но в /etc/ssh/
>(а пока переименовал эту директорию,
>чтобы грузился полностью новый ссш,
>а может стоило просто в
>нее переместить новые файлы?). Тк.
>он был отключен в rc.conf,
>то раньше ничего не конфликтовало,
>но теперь когда я в
>rc.conf записал
>sshd_enable="YES"
>sshd_program="/usr/local/sbin/sshd"
>sshd_flags="-f /usr/local/etc/sshd_config"
>
>то при старте ссш когда начинает
>генерировать ключи - пытается их
>записать по старому пути /etc/ssh
>и соответсвенно выдает ошибку (такой
>директории сейчас нет).
>Как указать новый путь или что
>я сделал не так? Просьба
>не прикалываться, да может это
>элементарно, но я хочу разобраться
>как правильно "совместить" (или разделить)
>эти разные конфигурации.
>Подскажите, плиз!вариант 1:
SSH в системе:
собирается в системе с --prefix=/usr - значит
sshd будет в /usr/sbin/sshd, остальное в /usr/bin
и /usr/libexec, --sysconfdir=/etc/ssh - здесь
ssh/sshd будет искать конфигурацию
--localstatedir=/var - здесь в /var/run будет pid
--datadir=/usr/share/ssh - здесь ssh.binвариант 2:
SSH из портов:
все порты имеют default'ом prefix=/usr/local,
значит все остальные вышеуказанные опции для
configure будут sysconfdir=${PREFIX}/etc
и тд и тппри make install идет проверка на наличие уже созданных ключей и если они есть, то используются старые, если нет - создаются новые или отсутствующие RSA-1 и DSA для SSH-Protocol-2
исходя из того как собирал, если бы собирал
из портов с OPENSSH_OVERWRITE_BASE=yes - НИЧЕГО
не пришлось бы делать кроме как поправить под
себя /etc/ssh/sshd_configХочется с PREFIX=/usr/local?
копируешь /etc/ssh_host* в /usr/local/etc
сие делается для того чтобы каждый раз
сохранять старые ключи, чтобы не мучаться и не
вычищать старые с других машин чтобы внести потом
новые.Генерация ключей для host'а в:
/usr/ports/security/openssh-portable/work/openssh-3.1p1/Makefile
место ^host-key: - проверка наличия
^host-key-force: - принудительная генерация новых ключейЕще одно место как иной вариант, либо как основной:
sshd_config:
# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_keyисходя из вышесказанного все исключительно встает
на свои места, при этом вполне понятно что
администратор в случае использования ДВУХ продуктов разных версий:- либо удаляет старую версию (аккуратно)
- либо меняет как системные установки, так и порядок следования в PATH чтобы отрабатывала свежая версия, в случае prefix=/usr/local
PATH=/usr/local/bin:/usr/bin:...для того чтобы узнать где пытается найти host-key
например /usr/local/sbin/sshd, можно использовать
strings:strings /usr/local/sbin/sshd | grep sshd_config
>Всего хорошего!
>Dmitry.