3

При физическом подключении к моему "серверу" (ввод команд с рабочего стола iMac середины 2006 года) он выдает следующий результат:

mac~$ screen -ls
No Sockets found in /var/folders/ht/rhhsw0515vl_ym59683911400000gn/T/.screen.

bash$ screen -dmS foo
bash$ screen -ls
There is a screen on:
    4250.foo    (Detached)
1 Socket in /var/folders/ht/rhhsw0515vl_ym59683911400000gn/T/.screen.

bash$ 

Какое поведение можно ожидать. Однако при выполнении тех же команд через ssh с аутентификацией RSA команда screen -dmS foo , похоже, не работает:

remote-bash$ screen -ls
No Sockets found in /var/folders/h4/_8scfsb54kd3mm7q6n9lq8nc0000gn/T/.screen.

remote-bash$ screen -dmS foo
remote-bash$ screen -ls
No Sockets found in /var/folders/h4/_8scfsb54kd3mm7q6n9lq8nc0000gn/T/.screen.

remote-bash$ 

При попытке выполнить стандартную экранную команду без опций вся оболочка зависает и не может быть закрыта с помощью ^ C.

Обратите внимание, что я могу видеть, прикреплять и убивать экраны, запущенные на сервере, но я не могу запускать их через ssh.

Есть ли объяснение этому несоответствию, или проблема свойственна моей машине?

2 ответа2

2

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

screen -LdmS foo

вместо этого, а затем посмотрите на содержимое файла screenlog.0, чтобы узнать.

РЕДАКТИРОВАТЬ после ОП комментария:

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

echo $SHELL

а затем попробуйте запустить ту же оболочку вручную (т.е. выполнить команду, которую вы видите в выводе).

Кроме того, могут быть проблемы с разрешением в терминале. Под моим OSX 10.9.5, прямо сейчас, это /dev /ttys000, в вашем случае вы можете использовать команду who, чтобы узнать вашу. Экран требует разрешения на запись для текущего пользователя в этот терминал. Теперь я прочитал в вашем комментарии, что разрешения в вашем случае:

crw--w---- 1 sandersfamily tty 16, 1 7 Mar 23:31 ttys001

Является ли "sandersfamily" пользователем, с которым вы входите через ssh? Если нет, то это проблема.

0

Я нашел проблему!

Оказывается, что по тем или иным причинам экран не может писать без включенного PAM. Ранее я читал об этом, даже если для PasswordAuthenticaiton и ChallengeResponseAuthentication задано значение no , PAM по-прежнему является уязвимостью, поэтому я отключил его в /etc/sshd_config .

Все, что потребовалось, это изменить UsePAM no на UsePAM yes в /etc/sshd_config , и команда работает, как и ожидалось. Я не знаю, есть ли способ использовать screen без включения PAM, но я не верю, что это особенно серьезная проблема безопасности для моих целей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .