я знаю это -t
вариант в ssh выделить псевдо-tty. я использую -t
для "перехода" в другой каталог при входе в систему, примерно так: ssh -t my-server "cd /path/to/my/directory; bash --login"
.
Зачем, если я вхожу без него (обычно) /etc/motd
напечатан и с -t
это не? я знаю что могу cat /etc/motd
перед cd
но интересно, есть ли более чистое решение и ПОЧЕМУ вообще такое происходит.
ps: Как вы понимаете, я хочу, чтобы MOTD отображался при входе в систему, даже если я использую -t
.
MOTD, как правило, отображается login
не bash
, так что если ты не бежишь login
вы не получаете MOTD. sshd
наверное даже не использую login
, но печатает motd
в зависимости от установки нескольких его флагов. (как заметил Jakuje) Способ подключения через sshd не вызывает поведения motd.
Я подозреваю, что попытка заставить все работать так, как вы хотите, приведет к изменению файла вашего профиля для выполнения MOTD, когда bash запускается sshd. Я полагаю, вы можете проверить, есть ли $tty
определено, но, вероятно, все еще будут игры, которые не позволят вам получить два MOTD при реальном входе в систему.
Это действительно кажется большим усилием без особой выгоды.
Или, если хотите
ssh -t my-server "cd /path/to/my/directory; cat /etc/motd; bash --login"