SSH ProxyCommand и удостоверяване, базирано на хост: кой хост подписва?
Разграничете препращането на TCP поток през бастион от стартирането на втори SSH клиент там, когато участва удостоверяване, базирано на хост.
Целта вижда TCP връзка, идваща от бастиона, докато SSH клиентът, който извършва удостоверяването, все още работи на работната станция.
Host behind-bastion
ProxyCommand ssh -W %h:%p bastionТук помощната програма влиза в бастиона и иска от неговия SSH сървър препратена връзка към целта. Външният SSH клиент на работната станция обменя SSH протокола на целта през този поток. Бастионът осигурява транспорта; той не е стартирал SSH клиента към целта.
Тази разлика е важна за удостоверяването, базирано на хост. Помощникът ssh-keysign на OpenSSH достъпва локалните ключове на хоста, за да генерира нужния подпис. Мрежов адрес на източника, принадлежащ на бастиона, не кара работната станция да подписва с ключа на хоста на бастиона.
Сравнете с:
ssh -t bastion ssh targetТова стартира друга SSH програма на бастиона. Нейната локална конфигурация и налични ключове на хоста принадлежат на тази машина, така че тя може да участва в предварително настроена схема за доверие, базирана на хост, между бастиона и целта. Тя все още се нуждае от съответното разрешение и проверки на името от страна на целта.
Втората форма променя и работата на сесията: тя изпълнява отдалечена команда и използва терминал. Тя не е прозрачна замяна за всеки SSH трансфер на файлове или автоматизационен транспорт. Избирайте схемата според това коя машина трябва да се удостовери пред целта, вместо да отслабвате проверките за доверие на сървъра, за да изглежда адресът на източника достатъчен.