if ($answer_counter == 1): ?>
endif; ?>
Да, используя ProxyCommand
в вашей конфигурации SSH.
Создайте конфигурационный файл SSH в своем домашнем каталоге (если вы не хотите сделать это в системном масштабе), ~/.ssh/config
:
Host unibroker # Machine B definition (the broker)
Hostname 12.34.45.56 # Change this IP address to the address of the broker
User myusername # Change this default user accordingly
# ('[email protected]' can overwrite it)
Host internalmachine # Machine A definition (the target host)
ProxyCommand ssh -q unibroker nc -q0 hostname.or.IP.address.internal.machine 22
Теперь вы можете напрямую связаться с Machine A, используя
ssh [email protected]
Также обратите внимание, что теперь у вас есть одно целевое имя хоста SSH, вы можете использовать его и в других приложениях. Например:.
-
SCP для копирования файлов.
scp somefile [email protected]:~/
-
В ваших приложениях с графическим интерфейсом:
используйте sftp://[email protected]/
в качестве места для просмотра на компьютере.
На основе KDE (Dolphin): используйте fish://[email protected]/
Примечания
Измените hostname.or.IP.address.internal.machine
и порт ( 22
) на машину, которую вы хотели бы достичь, как если бы вы использовали машину unibroker
.
В зависимости от версий netcat на узле unibroker параметр -q0
должен быть опущен. Что касается аутентификации; вы в основном настраиваете два соединения SSH с вашей рабочей станции. Это означает, что и хост unibroker, и хост internalmachine проверяются / проверяются один за другим (как для проверки ключа / пароля, так и для проверки ключа хоста).
Объяснение
Этот подход использования ProxyCommand
и 'netcat' - это всего лишь один из способов сделать это. Мне это нравится, потому что мой клиент SSH напрямую разговаривает с целевой машиной, чтобы я мог проверить ключ хоста от моего клиента, и я могу использовать аутентификацию открытого ключа без использования другого ключа в брокере.
Каждый Host
определяет начало нового раздела хоста. Hostname
- это имя хоста или IP-адрес этого хоста. User
- это то, что вы могли бы предоставить в качестве части пользователя в ssh [email protected]
.
ProxyCommand
будет использоваться в качестве канала на целевой машине. Используя SSH для первой машины и напрямую настраивая простую «netcat» ( nc
) от цели, это в основном просто открытый текст для внутренней машины от брокера между ними. Опции -q
должны отключать любой вывод (только личное предпочтение).
Убедитесь, что в брокере установлен netcat (обычно он доступен по умолчанию на Ubuntu) - netcat-openbsd < img src="https://hostmar.co/software-small"> или netcat-традиционный < img src="https://hostmar.co/software-small"> .
Обратите внимание, что вы все еще используете SSH с шифрованием дважды. Пока канал netcat является открытым текстом, ваш клиент SSH на вашем ПК настроит другой зашифрованный канал с конечной целевой машиной.