Я пытаюсь настроить SSH, чтобы я мог легко войти на сервер, доступный только через sudo для промежуточного сервера.
Вход в него из командной строки имеет вид:
sudo -u admin ssh destination.server.com
Это работает без проблем - достаточно справедливо. Тем не менее, следующие варианты не работают в ProxyCommand:
ProxyCommand sudo -u admin ssh destination.server.com
Псевдо-терминал не будет выделен, потому что stdin не является терминалом.
ProxyCommand sudo -u admin ssh -t -t destination.server.com
tcgetattr: неверный аргумент
Этот последний вариант, по-видимому, фактически обменивается информацией с сервером назначения, но затем он зависает:
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /home/me/.ssh/config
debug1: Applying options for destination
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Executing proxy command: exec sudo -u admin ssh -t -t destination.server.com
debug1: identity file ...
debug1: identity file ...
debug1: identity file ...
debug1: loaded 3 keys
tcgetattr: Invalid argument
debug1: ssh_exchange_identification: Last login: Fri Jan 4 22:48:26 2013 from intermediate.server.com
У меня такое чувство, что во взаимодействии sudo / ssh внутри ProxyCommand что-то отсутствует, но я не смог этого понять.