Я видел несколько похожих вопросов, но без четкого пути вперед, если на него уже был дан ответ, пожалуйста, закройте этот.
Мой сценарий:
Я придумал следующее в .ssh / config
Host bastion-host
HostName servername
Port servercustomport
Host A.*
User custom_user
IdentityFile path/key.pem
ForwardAgent yes
ProxyCommand ssh bastion-host 'ssh-add -t 1 && nc %h %p'
Host A.j
HostName ip
, а затем, используя ssh -vvv Aj, получил:
debug1: Reading configuration data ~/.ssh/config
debug1: ~/.ssh/config line 16: Applying options for A.*
debug1: ~/.ssh/config line 22: Applying options for A.j
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 47: Applying options for *
debug2: resolve_canonicalize: hostname ip is address
debug1: Executing proxy command: exec ssh bastion-host 'ssh-add -t 1 && nc ip 22'
debug1: identity file path/key.pem type -1
debug1: identity file path/key.pem-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.1
kex_exchange_identification: Connection closed by remote host
kex_exchange_identification: Connection closed by remote host
Что я делаю не так? Можно ли так подключиться?
Последнее замечание, это, вероятно, не лучший поток безопасности, хранящий даже для 1-секундного ключа на бастионе, но бастион находится в частной сети без общего доступа.
Попробуйте следующее:
Host A.*
User custom_user
IdentityFile path/key.pem
ProxyJump bastion-host
Вам не нужно пересылать агента, если вы используете Proxy команды. Команда Proxy означает, что основной ssh туннель пробрасывает порт к узлу назначения, и соединение устанавливается между вашим узлом и узлом назначения, а пересылка агента - это когда ssh соединения соединяются одно с другим.
У меня есть некоторые системы, к которым я не могу получить доступ напрямую через ssh, поэтому мне нужно использовать систему Solaris.
Вам просто нужно настроить свой .ssh / config на хосте A:
host *
ForwardAgent yes
host B
hostname servername
user username
host C
hostname servername
user username
ProxyCommand ssh -q -W %h:%p B
Затем просто ssh C из A.
Таким образом, я использую только одну систему для доступа к остальным, развертывания доступа и т. Д.
Надеюсь, это поможет, желаю хорошего!