openssh не может создать каталог /home/local/‹мое имя пользователя›/.ssh

Когда я пытаюсь, ssh [IP] openssh предупреждает Could not create directory '/home/local/[my username]/.ssh'.

У меня есть каталог .ssh по другому пути, в моем фактическом домашнем каталоге, в /home/[myusername]/.ssh.

Почему openssh добавляет local к этому домашнему пути? Этого пути не существует. Я на Ubuntu 16.04, мой $HOME установлен правильно, то есть /home/[my username].

Я не могу найти, где openssh настроен даже на поиск этого «локального» пути. Я искал local под /etc/ssh/, который ничего не вернул.

Обновление:

getent passwd $USER показывает неправильный домашний путь с «локальным» в пути. По-видимому, openssh использует домашний путь в качестве вывода этой команды вместо переменной среды $HOME для поиска домашнего каталога. Я не могу просто отредактировать /etc/passwd, так как $USER поступает из LDAP. Не уверен, что мой ИТ-отдел может редактировать мой домашний путь в LDAP, есть ли способ указать openssh, какой домашний путь использовать, т. е. $HOME, а не getent passwd $USER?


person mipnw    schedule 20.10.2020    source источник
comment
Если getent passwd $USER показывает, что ваш домашний каталог не существует, у вас проблема с конфигурацией системы. Вам нужно поговорить со своим системным администратором (администраторами) о его исправлении, либо путем исправления данных LDAP, либо, возможно, путем создания /home/local/username в качестве символической ссылки на ваш фактический домашний каталог. Для ssh разумно предположить, что информация о пользователе системы верна; если он не смотрит на $HOME, вероятно, нет обходного пути. Кроме того, это не совсем вопрос программирования; вероятно, было бы лучше для ошибки сервера.   -  person Keith Thompson    schedule 20.10.2020
comment
Я связался со своим ИТ-отделом. Они обновили мой домашний каталог в LDAP, и после перезагрузки моей локальной машины openssh работает.   -  person mipnw    schedule 21.10.2020
comment
@mipnw Молодец. Я отредактировал ответ, чтобы проиллюстрировать доступ к SSH, управляемый LDAP.   -  person VonC    schedule 21.10.2020


Ответы (1)


По-видимому, openssh использует домашний путь в качестве вывода этой команды.

Я довольно часто использую openssh с HOME, установленным в папку, отличную от папки по умолчанию, и это работает без каких-либо проблем.
Проверьте другие переменные среды, чтобы увидеть, есть ли другие упоминания о неправильном пути в одной из них.

Как комментирует OP, проблема заключалась в LDAP, управляющем учетной записью.

Это правда, что вы можете хранить ключи ssh в LDAP, что позволяет подключаться по SSH с любого сервера, на котором вы вошли в систему (поскольку ваши ключи извлекаются из LDAP).

Пример схемы LDAP:

In /usr/local/lib/ldap/schema/openssh-ltk.ldif:

    dn: cn=openssh-lpk,cn=schema,cn=config
    objectClass: olcSchemaConfig
    cn: openssh-lpk
    olcAttributeTypes: ( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey'
        DESC 'MANDATORY: OpenSSH Public key'
        EQUALITY octetStringMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
    olcObjectClasses: ( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' SUP top AUXILIARY
        DESC 'MANDATORY: OpenSSH LPK objectclass'
        MAY ( sshPublicKey $ uid )
    )
person VonC    schedule 21.10.2020