FWIW, Ваш код работает на меня.
$ echo | bash -c 'read -rN1; echo "$BASH_VERSION <$REPLY>"'
4.2.36(1)-release <
>
С -N
, никакая потребность установить IFS
, и NL действительно заканчивается в $REPLY. Пустое $REPLY
только означал бы NUL (<Ctrl-Space>
) или EOF или ошибка (статус выхода был бы ненулевым хотя для тех двух),
Я нашел эту страницу полезной: https://padraic2112.wordpress.com/2007/07/09/bad-security-201-remote-x-sessions-over-ssh/
Это в основном отвечает на ваш вопрос №2:
Если ForwardX11Trusted установлен в «да», то команды ssh -X и ssh -Y функционально эквивалентны. Если для ForwardX11 и ForwardX11Trusted установлено значение «да», то флаги команд не только эквивалентны, но и не нужны… то есть
ssh user @ host command = ssh -X user @ host command = ssh -Y user @ команда хоста
Если для ForwardX11 установлено значение «да», а для ForwardX11Trusted установлено значение «нет», то
ssh user @ host command = ssh -X user @ host command = / = ssh -Y user @ host command
К сожалению, я не понимаю других ваших наблюдений.
Per # 4, вы редактируете нужный файл? Файл ~ / .ssh / config
, который нужно изменить, находится на клиенте (обычно там, где находится клавиатура).
Что касается №2 (и 3), помните, что ForwardX11Trusted не подразумевает ForwardX11 . ForwardX11Trusted просто означает, что если вы включите пересылку (через файл конфигурации или командную строку), то переадресованное соединение будет доверенным.
HTH.