5

Я пытаюсь настроить 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 что-то отсутствует, но я не смог этого понять.

1 ответ1

-1

Если вы хотите простоту ввода:

alias dest_on_server='sudo -u admin ssh destination.server.com'

тогда dest_on_server доставит вас туда. Конечно, замените dest_on_server на любое короткое имя, которое вы хотите.

Следующая альтернатива - это ssh, и вы добавляете свой открытый ключ в файл $HOME/.ssh/authorized_keys . Запишите идентификатор пользователя, затем ssh user_id@destination.server.com .

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