Приветственный баннер, останавливающий scp

Наша команда решила добавить приветственный баннер всем нашим хозяевам. Член команды вместо добавления сообщения в /etc/motd добавил сообщение с echo в ~/.cshrc .

Это разрыв scp между хостами. Может кто-нибудь объяснить, как это нарушает scp ? cshrc ли cshrc даже при выполнении scp ? И как некоторые эхо-сообщения в нем сломают его?

Я не знаю о внутренней работе scp .

Сообщение, добавленное в ~/.cshrc :

 echo "##############################################################################" echo " Alert! Aler! Alert! Alert! Alert! Alert!" echo "This is a restricted box, any actions performed here will be reported to xxx@yyy.com" echo "##############################################################################" 

4 Solutions collect form web for “Приветственный баннер, останавливающий scp”

Команды, запущенные поверх транспорта ssh , не ожидают больших объемов вывода, прежде чем они смогут запустить свой сервер. Это повлияет на ряд утилит.

Решение состоит в том, чтобы ваша команда администратора печатала сообщение только в том случае, если stdout подключен к терминалу.

 if ( $?prompt ) then echo "Secure machine message..." echo "More warnings" echo "Etc." endif 

Еще лучше, вы не поместили бы это в .cshrc вообще, но вместо этого сам контент сообщения /etc/issue.net бы в /etc/issue.net , который отображается перед /etc/issue.net систему. Это может потребовать включения в /etc/ssh/sshd_config хотя с такой строкой:

 Banner /etc/issue.net 

Вы не можете ничего печатать в неинтерактивном сеансе. Это ломает всех клиентов, которые используют строгий протокол, например SFTP или SCP.


Используйте /etc/motd (который используется только для интерактивных сеансов).

Или используйте sshd_config директиву Banner .

Или протестируйте интерактивный сеанс перед тем, как распечатать что-либо (например, путем проверки наличия переменных TERM или prompt ).


Для получения дополнительной информации см. Мой ответ на вопрос о сбое сервера SSH MOTD для каждого пользователя .

Я считаю, что вам нужно поместить строки ABOVE в файл .cshrc, потому что в противном случае он не позволит вам делать sftp или ftp или что-то еще, потому что это интерактивная оболочка:

Эти ошибки обычно вызывают команды в файле управления запуском оболочки (.cshrc, .profile, .bashrc и т. Д.), Которые выводят вывод на терминал. Этот выход мешает связи между демоном SSH и подсистемой sftp-server. Примерами таких команд могут быть дата или эхо. Если вы используете почтовую команду для проверки почты, это также может вызвать ошибку. Чтобы решить эту проблему, вы должны поместить любые команды, которые будут выдавать вывод в условном выражении, который выполняется только в том случае, если оболочка является интерактивной. (ВСЕ ИСПЫТАНИЯ НУЖНО БЫТЬ В ТОПЕ файлов управления для рассматриваемой оболочки.

Брайан Бейкер

Он находится в ~/.cshrc . Я считаю, что это упрощает эту процедуру. Измените код в ~/.cshrc чтобы читать

 echo 1>&2 "##############################################################################" echo 1>&2 " Alert! Aler! Alert! Alert! Alert! Alert!" echo 1>&2 "This is a restricted box, any actions performed here will be reported to xxx@yyy.com" echo 1>&2 "##############################################################################" 
  • раздражающее сообщение «Соединение X11 отклонено из-за неправильной аутентификации», в то время как нет никакой проблемы вообще
  • Сделать SSH не использовать VPN
  • Не удается SSH с помощью пароля на удаленном сервере
  • Безопасный способ позволить пользователям загружать свои открытые ключи
  • Безопасный символ в режиме ожидания
  • Как исправить это eth0 и eth1, когда трафик, выходящий через eth0, терпит неудачу?
  • CentOS 7 устанавливает порт по умолчанию
  • ssh не удается найти «домашний каталог» (который существует и имеет разрешения), даже если локальный терминал регистрирует одного и того же пользователя в
  • Перемещение мыши над терминальным окном генерирует escape-последовательности
  • файл хвоста с удаленного сервера и nslookup на локальном
  • Создание клиентского VNC-соединения через SSH за один шаг (например, с опцией -via)
  • Linux и Unix - лучшая ОС в мире.