Следует использовать параметр -F
/ --fixed-strings
, который может интерпретировать шаблоны как набор фиксированных строк (, поэтому он заставляет grep
вести себя какfgrep
). См.:man grep
.
Так:
grep -F -f in2.lst /dev/null
или:
fgrep -f in2.lst /dev/null
Мой подход правильный, все, что мне нужно, это перенастроить sshd_config
как на сервере A, так и на сервере B (прокси):
AllowAgentForwarding yes
AllowTcpForwarding yes
GatewayPorts yes
X11Forwarding yes
Подробности можно найти здесь Переадресация портов SSH .
Можно ли использовать ssh с clientC
на serverB
и с serverB
на serverA
? Если это так, есть гораздо более простое решение. На clientC
запустите:
ssh -J userB@serverB userA@serverA
Это сначала ssh к userB@serverB
, автоматически настроит переадресацию портов на ssh на serverA
и подключится к userA@serverA
через этот перенаправленный порт.
Если это невозможно, вы можете использовать свой подход с некоторыми изменениями, при условии отсутствия брандмауэров или других сетевых ограничений, которые мешают.
Необходимо настроить запуск команды переадресации в обратном направлении изserverA
:
ssh userB@serverB -R "*:1234:localhost:22"
*
здесь устанавливает bind_address
, который является адресом, по которому прослушивается обратный прямой. На справочной странице ssh:
By default, TCP listening sockets on the server will be bound to the loopback interface only. This may be overridden by specifying a bind_address. An empty bind_address, or the address ‘*’, indicates that the remote socket should listen on all interfaces. Specifying a remote bind_address will only succeed if the server's GatewayPorts option is enabled (see sshd_config(5)).
Таким образом, настройка bind_address
позволяет прослушивать соединения на всех интерфейсах. (В вашей версии вы установили его на clientC
, что не будет работать, потому что IP-адрес clientC
не относится к сетевому интерфейсу на serverB
.
Вам также потребуется установить GatewayPorts clientspecified
в /etc/ssh/sshd_config
. Это дает ssh -R
разрешение на привязку к интерфейсу обратной связи, отличному от -.
Тогда вы сможете подключиться по ssh изclientC
:
ssh userA@serverB -p 1234
Этот тип переадресации портов между B
и A
подходит для чего-то быстрого и грязного. Если вы хотите что-то более готовое -, рассмотрите возможность использования чего-то вроде HAProxy, nginx или iptables/nftables для обработки переадресации TCP вместо переадресации с помощью SSH.