Назад | Перейти на главную страницу

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

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

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

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

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

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

Опции, доступные в authorized_keys (5), задокументированы в sshd (8).

Используй силу, Люк!

использовать RequestTTY force в твоем ~/.ssh/config для желаемого хоста.

кстати. это также обсуждается здесь https://unix.stackexchange.com/questions/27713/ssh-config-way-to-spectify-pseudo-tty-allocation-and-command-execution-like-sc/294468#294468

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

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

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

rssh myServer

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

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

PermitRootLogin without-password

И разрешить вход только root с ssh-ключами.

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

if [ "$SSH_TTY" != "" ]; then su -; logout; fi

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