Я пытаюсь настроить git на Synology NAS через ssh. Я создал пользователя git, установил аутентификацию по секретному ключу и установил пакет git. Я могу успешно войти в систему, используя закрытые ключи, и сделать так, чтобы git in /opt /bin работал локально (на NAS).

Чтобы это работало, я изменил /etc /ssh /sshd_config, чтобы иметь:

PubkeyAuthentication yes                                                   
AuthorizedKeysFile      .ssh/authorized_keys                               

PermitUserEnvironment yes

Но я все еще не могу заставить его работать удаленно.

Кажется, проблема в пути, используемом ssh, когда я выполняю удаленные команды. Я могу подтвердить это, потому что, когда я делаю

ssh gitowner@nas.home echo \$PATH

я получил

/usr/bin:/bin:/usr/sbin:/sbin:/usr/syno/bin

который отличается от интерактивной оболочки, которая дает мне:

PATH='/opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/syno/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin'

Я создал .ssh/environment со следующим содержанием

PATH='/opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin'

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

Я попытался с разрешениями файла среды, установленными в -rw ------- и -rw-r - r--, но также безрезультатно.

Что еще мне может не хватать sshd(?) в конфигурации, которая мешает ему читать пользовательскую среду?

1 ответ1

0

Решением было попытаться запустить ssh в режиме отладки, запустив другой порт:

/usr/sbin/sshd -d -D -p 222

затем запустить клиент с

ssh -v -p 222

и стало видно, что он на самом деле подхватывает окружающую среду. Проблема была в том, что ssh перезапускает скрипт NAS

/usr/syno/etc/rc.d/S95sshd.sh restart

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .