>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.