Если ls
вывод искажен, он указывает, что существуют непечатаемые символы в одних или нескольких именах файлов. Я поэтому рекомендую всегда использовать опцию -q
с ls
.
Любые непечатаемые символы будут затем распечатаны как вопросительный знак.
Поэтому попробуйте:
ls -Cq
Вы могли попробовать что-то вроде этого:
ssh server -t "do.sh; bash --login"
как предложено здесь: https://serverfault.com/questions/167416/change-directory-automatically-on-ssh-login
Или Вы могли попытаться использовать опцию 'LocalCommand' в sshd_conf (или ~/.ssh/config), как описано в официальной странице справочника: http://unixhelp.ed.ac.uk/CGI/man-cgi?ssh+1
Одна часть загадки: принимая OpenSSH, ssh
клиент установит следующую переменную среды:
SSH_CONNECTION
Определяет концы клиента и сервера соединения. Переменная содержит четыре разделенных пробелом значения: клиентский IP-адрес, число клиентского порта, IP-адрес сервера и номер порта сервера.
Таким образом, можно использовать эту информацию для обнаружения, куда соединение прибывает из.