После погони за красными сельдями в комментариях, я почти уверен, что настоящая проблема не имеет ничего общего ни ProxyJump
с -L
туннелем; это из-за sudo
. Запуск sudo ssh
запускает ssh
команду под идентификатором пользователя root и, следовательно, будет искать .ssh / config в домашнем каталоге корневой учетной записи, а не в вашей. И ~ root / .ssh / config не имеет записи для my-server
(если она вообще существует).
Вы должны быть в состоянии исправить это, добавив -F ~/.ssh/config
к ssh
опциям, чтобы сказать, использовать ли ваш конфигурационный файл, а не root. Обратите внимание, что ~/
часть будет расширена оболочкой, прежде чем она будет передана sudo
(и затем ssh
) в качестве параметра, поэтому оболочка развернет ее в вашем домашнем каталоге, а не в корневом каталоге.
ОДНАКО, я не проверял это, но я думаю, что IdentityFile ~/.ssh/id_rsa
записи в вашем конфигурационном файле сломаются, потому что они будут преобразованы в корневой каталог ~ / .ssh. Вам может потребоваться указать явный путь к домашней директории вместо ~
ярлыка. Другой возможностью было бы добавить -i ~/.ssh/id_rsa
в командную строку, чтобы она снова была развернута оболочкой, работающей как вы.
Кроме того, вы, вероятно, будете получать предупреждения о неизвестных хостах и т. Д., Так как вы будете использовать файл root ~ / .ssh / known_hosts.