«Команда не найдена» при использовании SSH и неабюретных команд

Лучший способ сделать это - использовать avahi , который реализует multicast-DNS (это то, что Apple называет Bonjour).

Я бы отключил Network Manager и перешел к настройке сети в / etc / network / interfaces . Файл interfaces поддерживает метод ipv4ll , который использует avahi-autoipd для настройки интерфейса с адресом канального уровня IPv4 (семейство 169.254.0.0/16).

Затем настройте службу в avahi, чтобы хост рекламировал себя через bonjour, и добавьте разрешение имен mDNS в /etc/nsswitch.conf .

Если остальные ваши системы настроены для разрешения имен mDNS, все должно работать как по волшебству.

2
10.01.2019, 21:07
1 ответ

Вероятно, ваш $PATHне включает /usr/local/bin. Поскольку это ssh, на ум приходят три подхода:

  1. Если PermitUserEnvironmentвключен в конфигурации sshd, вы должны иметь возможность установить PATHв ~/.ssh/environment(, это файл в вашем домашнем каталоге на сервере — NAS ).

  2. Если вы можете отредактировать конфигурацию sshd, вы сможете использоватьSetEnv PATH=/bin:/usr/bin:/usr/local/bin(и т. д. )для установки пути. По крайней мере, если он использует OpenSSH.

  3. Возможно, вы могли бы использовать опциюSetEnvклиента ssh для отправки серверу PATH, в зависимости от конфигурации сервера. Вы можете установить это в своем файле ~/.ssh/configна клиентской машине.

Обратите внимание, что в файлах конфигурации сервера и клиента OpenSSH могут быть параметры, ограниченные конкретными клиентами/серверами. Например, в конфигурации клиента вы можете сделать что-то вроде этого:

Host myhost
    SetEnv PATH=/bin:/usr/bin:/usr/local/bin

, чтобы сделать это только для одного сервера. Обратите внимание, что блок продолжается до тех пор, пока не начнется следующий блок (, например, другой блок Host …)— отступ сделан только для наглядности.

Файлы конфигурации OpenSSH описаны на страницах руководства ssh_configи sshd_config.

3
27.01.2020, 22:02

Теги

Похожие вопросы