Как SSH может связаться с собой?

У меня есть другой, возможно, более простой подход к очистке старых заданий на печать. Вместо того, чтобы найти способ конвертировать сокращенные отметки времени в заданиях печати, проще использовать команду find для выполнения задачи удаления старых заданий печати, соответствующих определенным критериям. Например, если вы хотите найти задания на печать старше 4 дней:

find /var/spool/cups -name "*-001" -mtime +4

Все активные задания на печать в чашках имеют файлы в / var / spool / cups с расширением -001 . После этого остается лишь использовать ваш любимый инструмент для работы со строками, чтобы получить из вывода фактический номер задания на печать.

0
10.12.2018, 12:31
3 ответа

В Linux каждое соединение, которое вы выполняете, обычно выполняется на bash в конце, для других unix используются другие оболочки (и другие сценарии инициализации)

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

Например, в /etc/bash.bashrc что-то подобное может заблокировать подключение к самому себе.

CNIP=$(echo $SSH_CONNECTION | cut -d' ' -f1)
RNIP=$(echo $SSH_CONNECTION | cut -d' ' -f3)

if [ "$CNIP" == "$RNIP" ] && [ "$CNIP" != "" ] ; then
    echo "We are connecting to ourself, exiting.." 
    exit 1
fi

Таким образом, в Linux с этим вы, вероятно, запретите ssh разрешать соединение для самого IP-адреса сервера.

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

С другой стороны, я не вижу никаких проблем с этим поведением и не могу определить, почему вы обеспокоены этим, но если вы действительно хотите предотвратить это по какой-либо причине, возможно, вот решение.

1
28.01.2020, 02:23

Ваша система похожа на здание, а не на телефон.

Вы можете сделать много звонков в здание. Вы можете позвонить другому человеку в здании.

Таким образом, когда вы подключаетесь к той же машине по ssh, она выполняет вызов. Затем принимает вызов. Принимающая сторона не знает, что вызов исходит с той же машины, и правильно его обрабатывает.

Он не подключается к той же оболочке/командной строке -. Unix — это многозадачная -система. Если бы он мог выполнять только одну задачу, тогда возникла бы проблема. Но это могут сделать многие. К машине может быть подключено много пользователей, каждый из которых занимается своими делами. Если одним из них является я, это не имеет значения.

1
28.01.2020, 02:23

Во многих случаях сервер, разговаривающий сам с собой, — это именно то, что вам нужно.

Бывают даже случаи, когда sshпогружение в себя может быть полезным, (хотя, я был бы удивлен, если бы часто это было лучшим инструментом для этой работы ).

Я так понимаю, вас беспокоит то, что это может быть в чем-то опасно.

Вполне возможно, -но не намного больше, чем классическая форк-бомба:(){ :|:& };:(не делайте этого в срок, если вы не согласны с потенциальной необходимостью перезагрузки)

Если бы вы написали и выполнили сценарий echo 'ssh localhost -c ". ~/.recursive_ssh" >> ~/recursive_ssh &&. ~/recursive_ssh', вероятно, произошло бы что-то плохое (В лучшем случае ulimitпридет вам на помощь и уничтожит бомбу ).

Функционально это не сильно отличается от выполнения bashв bash-. Вы можете попробовать:

bash bash

Просто выдаст вам обычную подсказку, разница в том, что вам нужно дважды выйти, чтобы выйти.

Не так уж много причин не хотеть слушать localhost, и на самом деле, скорее всего, нет более безопасного хоста для разговора.

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

0
13.02.2021, 13:54

Теги

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