1

В настоящее время мне требуется удаленный доступ к 10-20 компьютерам, некоторые из которых должны быть доступны через несколько переходов SSH. Однако я заметил, что некоторые из SSH-соединений немного вялые. Какая установка наиболее эффективна? Более конкретно, есть ли затраты на производительность / ввод-вывод для добавления большего количества привязок портов к той же команде ssh?

Например, каковы различия между этим:

ssh -f user0@host0 -i "/certs/key.pem" -L 2001:host1:22 -L 2002:host2:22 -L 2003:host3:22 -N

и это:

ssh -f user0@host0 -i "/certs/key.pem" -L 2001:host1:22 -N
ssh -f user0@host0 -i "/certs/key.pem" -L 2002:host2:22 -N
ssh -f user0@host0 -i "/certs/key.pem" -L 2003:host3:22 -N

Я заметил, что в первом случае работает только один экземпляр SSH, но во втором случае их будет три. Какая настройка даст наилучшую производительность для любых SSH-соединений, выполняемых через туннели? Или какая-то разница в производительности просто затмевается скоростью сети?

1 ответ1

1

Один использует одно соединение с 3 туннелями, второй использует 3 отдельных соединения с 3 туннелями. Более эффективно просто использовать первую команду, предполагая, что нет альтернативных настроек, используемых через ~/.ssh/config или /etc/ssh/ssh_config .

Например, если вы используете ControlMaster и ControlPath , обе команды обеспечат одинаковый уровень производительности.

Кроме того, если вы пишете сценарии и заинтересованы в удобочитаемости, попробуйте следующее:

ssh \
    -f \
    -i "/certs/key.pem" \
    -L 2001:host1:22 \
    -L 2002:host2:22 \
    -L 2003:host3:22

Я думаю, что вы достигнете своей цели немного легче, если будете использовать это в вашем ~/.ssh/config:

Host host1
    ProxyCommand ssh host0 -W %h:%p

Если вы сделаете это, вам не нужно использовать туннели в первую очередь, поскольку кажется, что вы пытаетесь пересылать ssh-соединения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .