Тема избитая, но расскажу. У меня возникла потребность в такой штуке. Как-то я потерял ssh ключи для входа на свой компьютер, а потом забыл пароль root (очень длинный ) И мне пришлось тащить монитор клавиатуру и вставлять видеокарту в компьютер чтобы вернуть его к жизни. Теперь такая ситуация дело минувших дней. У меня есть последовательная консоль до этого пк.
Всё очень просто. Контроллер и контролируемый. Контроллер может контролировать несколько компьютеров (сколько ком портов на нем будет ) В любом случаи контроллер легко сделать. От него требуется только наличие com-порта и минимальная настройка.
Настройки тривиальны. Они производятся на сервере - подконтрольная машина.
1. T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100 - чтобы получить login через ttyS0 на машине. добавляются в /etc/inittab.
2. serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console
Добавляется в /boot/grub/menu.lst - чтобы получить контроль над grub через ttySx. Получается всё как на мониторе. Например, меня бы спасло добавление параметра ядру init=/bin/bash - я бы получить рута и смог перебить свой пароль, а потом сделать exec /sbin/init и получить систему с новым паролем, но не нужно делать лишних телодвижений - тащить монитор и прочее. Про grub2 может почитать в интернете, я его не использую, но настройки там аналогичные.
Добавляем console=tty0 console=ttyS0,115200n8 в параметры ядру - чтобы видеть через консоль выхлоп ядра при загружении. Во всех трёх пунктах нужно указывать свой порт ttySx unit и т.д Посмотреть все свои порты можно через dmesg |grep ttyS. Остальное посмотреть можно тут - http://tldp.org/HOWTO/Remote-Serial-Console-HOWTO/
А теперь клиент. Можно проделывать управление из любой точки мира! Для этого вам нужен ssh и screen. Самая простая команда будет иметь вид - ssh -t контроллер screen ttySx 115200. На компе "контроллер" должен быть установлен ssh и screen. Советую овладеть мощным инструментом screen - русский man - http://xgu.ru/wiki/man:screen
p/s ещё нужен нуль-модемный кабель для соединения по com-порту.
[Ответ]
dm.tsvetkov 09:40 03.11.2011
идем в ближайший компьютерный магазин и изучаем список современных материнских плат.
ищем у них com-атавизмы.
думаем.
[Ответ]
Hip-Hop 11:53 03.11.2011
Сообщение от dm.tsvetkov:
идем в ближайший компьютерный магазин и изучаем список современных материнских плат.
ищем у них com-атавизмы.
думаем.
На них на многих есть com, прост он не выводится на бэкпанель, а подключается через шнурок. Вот floppy уже много где нету.
Ещё мне пришлось добавить две переменных в ~/.bashrc (я туда добавлял).
export COLUMNS=180
export LINES=50
Подбирал тыком. (чтобы mc не рассыпался и вывод не ломался). Чтобы не подбирать тыком, вы можете посмотреть значение своих переменных в своей системе echo $COLUMNS; echo $LINES и передать их в ~/.bashrc. В чистой консоли (не x-терминал - ctrl + alt + f1,2,3 etc) они будут\могут (?) отличатся. У меня отличаются.
По умолчанию у меня стартует в маленьком окошечке. Как с grub так сделать пока не разобрался.
Обязательно, для такого доступа через ssh в глобальной сети - internet. Нужно включить пароль для grub! Во-вторых, желательно убрать порт ssh на "контроллере" с 22 на другой, тогда боты не будут "стучать". Можно сделать "тик-так" - различная защита средствами iptables, это может быть отключение порта (22) при перебор или включение порта (22) при определённой последовательности пакетов на нужные порты или другая активность которую можно отследить, но это избыточно - достаточно убрать порт "контроллера" со стандартного 22 + пароль на груб. И пароль на ssh знаков 6-7 в разных регистрах.
dm.tsvetkov, Плату я использую самую обычную. Была на 2 com-порта + 1 порт на самой mb.
Такую можно купить на комке за 100-200р. Она может и кривая для каких-то специфических задача, но в контексте этой задачи все работает.
честно скажу - многое (почти все) я в этой теме не осилил.
конечная цель какая?
[Ответ]
Hip-Hop 14:30 09.11.2011
Сообщение от dm.tsvetkov:
конечная цель какая?
Получить полный контроль надо компьютером удалённо. Через ssh ты можешь получить контроль только на этапе старта ядра. (Можно запускать ssh сервер из initrd) Но ты не получить контроль на этапе до загрузки ядра. Я уже объяснял на примере init=/bin/bash; exec /sbin/init. grub2\grub 0.97 это очень мощные инструменты. Это как mini linux. Используя grub можно например файловую систему шерстить - вносить изменения. Слегка приврал, вносить нельзя, но смотреть можно - http://www.gnu.org/software/grub/man...y/cat.html#cat То-есть, это намного больше... чем просто загрузчик ядра.
[Ответ]
Hip-Hop 13:31 10.11.2011
dm.tsvetkov, Если ядро не сможет смонтировать rootfs, ты не получишь доступной системы, а с serial console всё получиться. Я добавляю на уровень выполнения 0 - перезагрузка, скрипт wakeup этого pc. Каждый раз, когда делается рестарт файл хран, поднимается serial console на какое-то время. Ещё я могу поднимать её wakeup over nat - из интернета посылать магический пакет.
[Ответ]
dm.tsvetkov 17:36 11.11.2011
Сообщение от Hip-Hop:
Получить полный контроль надо компьютером удалённо.
Получить удобный способ управления удалённым компьютером. Удобный способ - полный контроль.
[Ответ]
dm.tsvetkov 19:58 12.11.2011
Сообщение от Hip-Hop:
Получить удобный способ управления удалённым компьютером.
какая максимальная длина шнура для com порта?
Сообщение от Hip-Hop:
Удобный способ - полный контроль.
а цель-то какая конечная? что на выходе ты получишь такое, что не получишь через ssh?
[Ответ]
Катя. 20:28 12.11.2011
Сообщение от dm.tsvetkov:
что на выходе ты получишь такое, что не получишь через ssh?
Сообщение от Hip-Hop:
Получить полный контроль надо компьютером удалённо. Через ssh ты можешь получить контроль только на этапе старта ядра. (Можно запускать ssh сервер из initrd) Но ты не получить контроль на этапе до загрузки ядра. Я уже объяснял на примере init=/bin/bash; exec /sbin/init. grub2\grub 0.97 это очень мощные инструменты
Сообщение от dm.tsvetkov:
какая максимальная длина шнура для com порта?
Сообщение от dm.tsvetkov:
какая максимальная длина шнура для com порта?
метров 200? Из витой пары делается + два компортовых разъёма.
Сообщение от dm.tsvetkov:
а цель-то какая конечная? что на выходе ты получишь такое, что не получишь через ssh?
Я же уже объяснил. ssh - сервер. Сервер стартует после старта ядра. То-есть, в процессе старта, когда стартуют разные сервера, но ты не получишь удалённое управление если произойдёт аварийная ситуация - например, ядро не сможет смонтировать rootfs - тебя выбросит в initrd - минимальная обвязка гну в рамдиске, но ssh там не будет => и контроля не будет - не будет и прочего. Во-вторых, с serial ты можешь контролировать этап до загрузки ЯДРА! То-есть, ты можешь передавать различные параметры ядру\скриптам через меню загрузчика -grub lilo и т.д.
[Ответ]
dm.tsvetkov 20:04 13.11.2011
отвечу вам позже. иссяк.
а катина реплика вообще к изощрениям прям таки призывает.
[Ответ]
dm.tsvetkov 19:41 15.11.2011
Сообщение от Hip-Hop:
Из витой пары делается + два компортовых разъёма.
илья, очнись!
21 век на дворе. компов с ком портами больше нет. вымерли, как мамонты. весь мир на беспроводные сети переходит.
какой нафиг "из витой пары делается"? какие разъемы? ты бы еще по нуль-модемной связи что-нибудь изобразил.
[Ответ]