SSH к нескольким серверам [Отказано в доступе]

Добавление binding = "strong" в вашу первую строку редактирования следующим образом:

<edit name="family" mode="assign" binding="strong"><string>Essential PragmataPro</string></edit>

должно помочь. Также кажется, что ваша вторая строка редактирования:

<edit name="embolden" mode="assign"><bool>false</bool></edit>

не нужна.

2
22.11.2018, 22:21
3 ответа

Это распространенная проблема, когда вы хотите получить доступ к серверу, который не доступен напрямую из внешнего Интернета, но он доступен с общедоступного промежуточного хоста. (Промежуточный хост называется Jumpbox .)

Поскольку эта проблема очень распространена, естественно, что OpenSSH предоставляет удобные методы, упрощающие работу с джампбоксами (или джампбоксенами? ). Есть два пути, старый путь и новый путь. Старый способ по-прежнему работает, но новый способ более интуитивно понятен и делает меньше предположений о том, какие приложения доступны в Jumpbox.

Используя примеры машин, упомянутых в вопросе, это можно сделать так:

ssh -o StrictHostKeyChecking=no -o ProxyJump=myuser@test.ac.uk myuser@t002

Или вместо -o ProxyJump=myuser@test.ac.ukя думаю, что -W myuser@test.ac.ukэквивалентно.

В любом случае для этого метода требуется достаточно новая версия OpenSSH. Если вы застряли со старой версией, вам нужно сделать что-то вроде этого:

ssh -o StrictHostKeyChecking=no -o ProxyCommand='ssh myuser@test.ac.uk "nc %h %p"' myuser@t002

Старый способ предполагает, что на Jumpbox установлен netcat.

Еще одним преимуществом нового способа является то, что вам не нужно хранить закрытый ключ на панели перехода. ProxyJump достаточно умен, чтобы попытаться использовать закрытый ключ, который у вас есть локально. Таким образом, если джампбокс скомпрометирован, он не сможет скомпрометировать что-либо за джампбоксом.

Вам может надоесть каждый раз писать эту большую длинную команду. Чем больше вы используете ssh, тем больше у вас будет стимула установить $HOME/.ssh/config. Это файл, в котором вы можете давать псевдонимы удаленным хостам и связывать определенные конфигурации с этими хостами.

В вашем примере конфигурация ssh _будет настроена следующим образом:

Host jumpbox
User myuser
Hostname test.ac.uk
StrictHostKeyChecking=no

Host t002
User myuser
StrictHostKeyChecking=no
ProxyJump jumpbox

С такой конфигурацией вы теперь сможете войти в t002 с помощью гораздо более простой команды:

ssh t002

Есть много других интересных вещей, которые вы можете сделать с конфигурацией ssh ​​_. Просмотрите man ssh_configи возвращайтесь к нему время от времени, когда вы узнаете больше о ssh.Вы будете продолжать находить больше интересных вещей, которые вы можете сделать:)

Пример вводного пошагового руководства по настройке конфигурации sshhttps://www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/

3
27.01.2020, 21:55

Я бы просто использовал команду в скрипте, чтобы сократить набор текста, и набрал бы учетные данные пользователя!

#!/bin/bash
ssh -o StrictHostKeyChecking=no myuser@test.ac.uk 'ssh -o StrictHostKeyChecking=no myuser@t002'

Адаптируйтесь к вашим потребностям..

ssh -o StrictHostKeyChecking=no myuser@test.ac.uk 'ssh -tt -o StrictHostKeyChecking=no myuser@t002'

Скопируйте ключ с 1-го сервера на свой компьютер и ссылайтесь на него следующим образом:

ssh -o StrictHostKeyChecking=no myuser@test.ac.uk 'ssh -tt -o StrictHostKeyChecking=no -i /ssh/1stserverkey myuser@t002'
1
27.01.2020, 21:55

Вы создаете новый ssh. Попробуйте:

send "ssh -o StrictHostKeyChecking=no $login@$addr2 -p 22\r"
1
27.01.2020, 21:55

Теги

Похожие вопросы