SSH показывает неправильный IP-адрес, когда SSH с перенаправлением порта

#macos #ssh #portforwarding

Вопрос:

Мой вариант использования заключается в том, что я должен получить доступ к экземплярам AWS ec2 через окно перехода.

Вот моя конфигурация SSH.

 Host awsjumpbox
  User sshuser
  HostName jumpboxhostname
  IdentityFile /Users/myusername/.ssh/id_rsa
  LocalForward 8022 10.0.168.43:22
 

Это работает, когда я выполняю команду SCP для копирования файлов в экземпляр EC2.

 myusername % scp -r -i ~/aws/aws-keypair.pem -P 8022 * ec2-user@localhost:testdir
The authenticity of host '[localhost]:8022 ([::1]:8022)' can't be established.
ECDSA key fingerprint is SHA256:rrwr62yjP2cgUTT9SowdlrIwGi4jMMwt5x4Aj6E4Y3Y.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[localhost]:8022' (ECDSA) to the list of known hosts.
/etc/profile.d/lang.sh: line 19: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
README.md                                     100% 1064    24.3KB/s   00:00 
 

Однако, когда я выполнил команду SSH. Он возвращает странный IP-адрес.

 myusername % ssh -i ~/aws/aws-keypair.pem -P 8022 ec2-user@localhost      
ssh: connect to host 0.0.31.86 port 22: No route to host
 

В чем причина этой проблемы? Как мне это исправить?

Спасибо.

Ответ №1:

Не используйте LocalForward и не меняйте поток вспять.

Используйте ProxyCommand или ProxyJump. Это позволит SSH прозрачно открывать сеанс на вашем сервере bastion.

Например, ваша конфигурация должна быть чем-то вроде

 Host 10.0.168.43
  User root
  ProxyCommand ssh -W %h:%p sshuser@awsjumpbox
  ...
 

или

 Host 10.0.168.43
  User root
  ProxyJump sshuser@awsjumpbox
  ...
 

Комментарии:

1. Если я добавлю такую конфигурацию, как эта, как мне выполнить команду SSH?

2. Спасибо, Боки. Это действительно работа. Я использую ProxyJump.