1

преамбула

Я работаю в среде с большим количеством серверов и разработчиков. Все серверы, как правило, настроены для простоты использования, поэтому мы все подключаемся к общей учетной записи. Это только внутренние серверы, поэтому безопасность не является большой проблемой. Большинство разработчиков, включая меня, добавляют свои открытые ключи в ~/.ssh/authorized_keys .

Я хотел бы, чтобы мои обычные настройки среды были доступны после входа в систему.

Что я делаю сейчас вручную

studog@doghouse:~# ssh example.local
common@example:~# . ./studog_profile
common@example:~# 

Я бы хотел, чтобы это происходило автоматически.

Дополнительный кредит: я хотел бы всегда выдвигать мой текущий .studog_profile и поэтому у меня всегда есть мои текущие настройки.

В идеале:

studog@doghouse:~# ssh example.local
common@example:~# 

и .studog_profile уже был получен, и мои настройки доступны.

Ограничения

  • Мой .studog_profile содержит настройки переменных среды, включая изменения PATH, псевдонимы и объявления функций.
  • Я могу отправить файлы с уникальными именами на серверы (и изменить .ssh/authorized_keys), но не могу изменить общие конфигурации, такие как ~/.bashrc или /etc/ssh/sshd_config .
  • Я часто ssh из моей конуры, но часто ssh между серверами. Решение должно работать в обеих ситуациях. Я не ожидаю, что смогу перенести свой пользовательский профиль между серверами.

Вещи, которые не работают

  • ssh -t example.local '. ./.studog_profile; bash -l' . Это запускает мой профиль, но тогда изменения среды теряются при запуске оболочки входа.
  • Изменение .bashrc на серверах. Смотрите ограничение выше об изменении общих конфигураций. Тем не менее, мне, вероятно, это сойдет с рук, но ssh не дает возможности увидеть, что такое «начало канала ssh». SSH_CLIENT и SSH_CONNECTION содержат IP-адрес исходного сервера для текущего прыжка, но нет ничего, содержащего идентификатор машины, на которой я печатаю.

Вопросы, которые я прочитал, которые не работают для меня

Вещи, которые я не пробовал

ожидание

У ssh есть какой-то метод отправки команды post-login на удаленный сервер, вероятно, это ключевое слово в ~/.ssh/config . Я не смог ничего найти. Я нахожу это странным, потому что принимать ввод с клавиатуры и отправлять его на удаленный сервер - это почти то же самое, что читать команду из файла конфигурации и отправлять ее на удаленный сервер.

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

Я ожидаю, что смогу изменить исходный код OpenSSH и собрать то, что мне нужно, но это отнимает много времени. Кроме того, если это дыра в безопасности, мой запрос на удаление, скорее всего, будет проигнорирован.

Я ожидаю, что я охватил все основы. Я пишу в надежде, что что-то пропустил.

1 ответ1

0

Ожидаемый сценарий часто упоминается. Я верю, что это сработает. Это только кажется ... хаки? безвкусный? неправильное решение? Что-то натирает меня неправильно.

Хакерская среда требует "хакерских" решений. Если бы у вас были правильно настроенные серверы с вашим личным пользователем, с общим домом, вы могли бы настроить это в одном месте, и оно будет работать везде из коробки.

Если у вас есть группа серверов с одним пользователем, которые используются группой разработчиков, где вы не можете вносить свои собственные изменения, вы должны обойти это на своем компьютере, и в этом случае, вероятно, сценарий - это путь.

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