SSH - Как включить команду «-t» в файл ~ / .ssh / config

13

Я использую ~/.ssh/configфайл, чтобы я мог легко войти, ssh myserverи он предоставит правильное имя пользователя, порт, имя хоста, файл идентификации и т. Д.

Однако для многих серверов первое, что я делаю, - это вход su -в систему как root. Я могу сделать это все в одной команде в командной строке следующим образом: ssh myserver -t su -. Есть ли что-то, что я могу добавить в свой ~/.ssh/configфайл, который сделает это для меня? Я хочу быть в состоянии сделать, ssh myserver-rootи это будет делать то же самое, что и ssh myserver -t su -?

Я знаю о том PermitRootLogin, что это отключено для этого сервера, и я не хочу его включать. Я бы предпочел посмотреть, есть ли способ сделать это с помощью ssh на стороне клиента.

Рори
источник

Ответы:

10

Я думаю, что я бы подошел к этому с другой стороны - используйте команду «command =» в записи открытого ключа в вашем файле ~ / .ssh / authorized_keys на удаленном сервере, чтобы выполнить команду «su -».

Затем просто используйте / используйте закрытый ключ в вашем файле ~ / .ssh / config (опция IdentityFile) для каждого хоста / псевдонима («myserver-root»), который вы хотите работать таким образом.

Опции, доступные в author_keys (5), описаны в sshd (8).

JRG
источник
Да, это именно то, что я хочу. :) У меня есть полный контроль над файлом ~ / .ssh / authorized_key на сервере, и у меня нет проблем с его изменением.
Рори
3

Почему бы не добавить в каталог путь к каталогу (или псевдоним для него) с именем rssh вроде:

#!/bin/bash
ssh $1 -t 'su -'

Тогда это просто:

rssh myServer
Кайл Брандт
источник
1

Я не нашел никакой опции конфигурации для выделения псевдо-tty в источнике OpenSSH.

Но я могу дать совет относительно PermitRootLogin, установите его на:

PermitRootLogin without-password

И разрешить только root-логины с ssh-ключами.

rkthkr
источник
1

Как насчет добавления чего-то подобного в ~ / .bashrc на стороне сервера?

if [ "$SSH_TTY" != "" ]; then su -; logout; fi
Шон Чин
источник
1

Лучшим ответом, вероятно, является комбинация rkthkr и jrg . Используйте PermitRootLoginдля запроса ключа, затем поместите ключ с commandключевым словом только в файл author_keys root.

mwalling
источник