Логин ssh не анализирует правильно .profile или .bashrc и обычно выглядит странно

  • Во-первых, он не загружает мою PS1. Он просто предлагает мне $
  • Клавиши со стрелками вместо того, чтобы делать то, что они должны делать, просто повторяют такие вещи, как: $ ^ [[A
  • И это делает его очень непригодным для использования . Здесь следует учесть несколько моментов:

    • Это происходит только тогда, когда я вхожу в систему через ssh, этого не происходит, когда я вхожу непосредственно на сервер.
    • Один из пользователей неплохо работает даже с ssh; и это пользователь, который был настроен во время установки ОС ( ubuntu server 14.04 ).
    • Когда я su - otherUser изнутри этого пользователя работает нормально, все работает нормально.

    Вот .bashrc на случай, если вы захотите взглянуть на него (он одинаков для всех пользователей, включая того, который работает правильно):

    function parse_git_branch () {
      git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
    }
    
    RED="\[\033[0;31m\]"
    YELLOW="\[\033[0;33m\]"
    GREEN="\[\033[0;32m\]"
    NO_COLOR="\[\033[0m\]"
    #PS1="[\u@\h \W]\$"
    export PS1="[\u@\h $YELLOW\W$NO_COLOR]$GREEN\$(parse_git_branch)$NO_COLOR\$ "
    

    Вот журнал вывода, когда я пытаюсь для входа в систему работает правильно ssh -vvv ubuntu @ server : http://paste.ubuntu.com/15436267/

    Вот выходной журнал для когда я пытаюсь войти в систему, не работает должным образом ssh -vvv adam @ server : http://paste.ubuntu.com/15436301/

0
09.09.2016, 05:30
1 ответ

Описанные вами симптомы (только очень простая подсказка, клавиши со стрелками не работают) соответствуют тому, что в качестве оболочки для входа в систему используется / bin / sh , а не / bin / bash как и ожидалось. / bin / sh - это небольшая оболочка, предназначенная для быстрого запуска скриптов, что неудобно для интерактивного использования.

Чтобы проверить, какая у вас оболочка входа, запустите

getent passwd $USER

Это отобразит список полей, разделенных двоеточиями, оболочка входа будет последней.

Если оболочка входа не та, которую вы хотите, запустите chsh -s / bin / bash .

Причина, по которой вы получаете bash в терминале, может заключаться в том, что где-то в вашей конфигурации вы устанавливаете для переменной среды SHELL значение bash. Эмуляторы терминала обычно запускают программу, обозначенную SHELL , возвращаясь к оболочке входа в систему, если SHELL не установлено.

1
28.01.2020, 02:48

Теги

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