
Я всегда использую более одного терминала, но всегда должен вводить данные для входа в каждый из них перед использованием. Как мне указать в inittab, чтобы запрашивались данные для входа только в tty1, а после успешного входа автоматически входить под тем же пользователем во все остальные виртуальные терминалы?
решение1
Я должен согласиться с первыми комментариями и использовать screen. Метод автологина будет работать, но он действительно небезопасен. Может быть, и подойдет для дома, но для производственной системы это большой табу и вызовет истерику у любого секьюрити. Другие ответы на использование ключей с putty или любым другим ssh-клиентом тоже хороши, но для прямого входа в консоль я бы выбрал screen.
решение2
Если вы непременно хотите это сделать, вот вам идея. Сейчас у меня нет времени проверить свою идею, но что-то вроде этого МОЖЕТ сработать:
1) Установите mingetty
, если он еще не используется (он поддерживает --autologin, поэтому такие вещи, как 1:2345:respawn:/sbin/mingetty --autologin thiado --noclear tty2
должны быть возможны)
2) Иметь нормальный/etc/inittabи еще один такой/etc/inittab.автологиндоступно. Для вашего автоматического входа в систему ttys, сделайте/etc/inittab.автологинсодержат что-то вроде
2:2345:respawn:/sbin/mingetty --autologin thiado --noclear tty2 3:2345:respawn:/sbin/mingetty --autologin thiado --noclear tty3 4:2345:respawn:/sbin/mingetty --autologin thiado --noclear tty4 5:2345:respawn:/sbin/mingetty --autologin thiado --noclear tty5 6:2345:respawn:/sbin/mingetty --autologin thiado --noclear tty6
3) В вашем.bashrcили любая другая проверка, 1) текущий tty - это tty1, и если это так, 2) проверка, используются ли уже все остальные tty или нет.
4) В случае успешного входа в tty1 замените свой обычный/etc/inittabс/etc/inittab.автологини отправить сигнал HUP намингеттичтобы перезагрузить конфигурацию.
5) Прибыль! Это должно заставить работать автологин.
Другой способ вместо замены /etc/inittab — заставить tty1 запускаться с уровнями выполнения 1, 2 и 3, а все остальные — только с 4. Затем вы можете переключаться на уровень выполнения 4 каждый раз, когда вам нужны все tty с помощью command init 4
, и заставлять tty исчезать с помощью init 3
(или любого другого вашего обычного уровня выполнения).
Но все это отвратительный взлом в лучшем или худшем проявлении. Не пытайтесь делать это дома и тем более на работе. Упомянутый screen
здесь много раз подход гораздо лучше.
решение3
Для клиентов Windows (также работает и на Linux, но процесс проще, поскольку вы просто копируете ключ, и все готово) аутентификация с открытым ключом может оказаться близкой к цели.
Вы настраиваете пару ключей с помощью ssh-keygen, а затем запускаете закрытый ключ через putty-gen, чтобы получить файл ключа в формате putty. Затем вы создаете сеанс putty с нужными вам настройками и именем хоста, а также файлом закрытого ключа, который вы запустили через putty-gen, и сохраняете его. Затем вы можете использовать PAgent для автоматической аутентификации. Затем вы можете просто щелкнуть правой кнопкой мыши по окну putty и перейти к «Дублировать сеанс», и у вас будет новый терминал, аутентифицированный и готовый к работе (или используйте значок pagent).
http://www.ualberta.ca/CNS/RESEARCH/LinuxClusters/pka-putty.html
Это звучит как боль, но на самом деле это не так. Вы настраиваете большую часть один раз (сохраняется между выключениями). После этого вы вводите свой пароль один раз при запуске PAgent, а затем просто открываете имя подключения Putty (все делается через значок на панели задач около часов).
Если вы действительно увлечены автоматизацией, вы можете настроить задачу запуска, чтобы автоматизировать этот процесс еще больше (вам будет предложено ввести пароль один раз):
http://hamisageek.blogspot.com/2009/01/pageant-with-your-ssh-provate-key-added.html
Если ваш клиент — Linux, вы можете рассмотреть возможность настройки главного управляющего сокета. Он запросит аутентификацию один раз, а затем все последующие соединения будут использовать этот сокет. Это сокращает время соединения до миллисекунд, а не до 2-3 секунд после первого входа. http://www.linux.com/archive/feed/54498
решение4
Используйте X-терминал