Добрый день, коллеги.
Подключаясь к некоторым серверам, я первым делом выполняю команду
sudo screen -xR admin_name -c /root/.screenrc_admin_name
чтобы использовать мой конфиг для screen, который уже подтягивает мой bashrc и чтобы мой конфиг не мешал коллегам. Это не очень удобно. Каждый раз вводить
ssh server1 "sudo screen -xR admin_name -c /root/.screenrc_admin_name"
Тоже не хочется. Хочется сделать так, чтобы эта команда выполнялась автоматически. Но вот как это реализовать?
Вариант 1. Прописать в ~/.ssh/authorized_keys на всех серверах
command="sudo screen -xR admin_name -c /root/.screenrc_admin_name" ssh-rsa ....
не подходит, т.к. после этого перестает работать scp и т.п. Да и неудобно, если серверов много.
Вариант 2. Использовать конфиг ~/.ssh/config
Я не нашел варианта. Хотя, в идеале, хочется реализовать это через него.
Вариант 3. Сделать алиас
alias server23='ssh user@server23 "sudo screen -xR admin_name -c /root/.screenrc_admin_name"'
Тоже не вариант. Лично мне не удобно вводить просто имя сервера. Привычка писать "ssh server1" (все сервера внесены в ~/.ssh/config).
Вариант 4. Сделать функцию в ~/.bashrc
ssh() {
ssh "$1" -F ~/.ssh/config "sudo screen -xR admin_name -c /root/.screenrc_admin_name"
}
Это вариант. На данный момент так и сделано.
Но может есть другой, более правильный способ?
PS: Авторизуюсь на серверах по ключам (на всякий).