ssh: Случаи использования отпечатков пальцев и randomart

Я понимаю, что, по крайней мере, в раннем пользовательском пространстве, init - это сценарий оболочки, из которого нельзя выйти. Это правильно?

Это не обязательно должен быть сценарий оболочки. Конечно, вы можете выйти из процесса init . Это вызовет панику ядра, но это можно сделать.

Так что же происходит, когда он подходит к концу?

В сценарии обычно есть строка типа exec switch_root / root "$ @" . Поскольку он использует exec , тот же идентификатор процесса накладывается на новый исполняемый двоичный файл.

Таким образом, программа, которая называется init , изменяется, и ядро ​​никогда не видит выхода из процесса init.

В свою очередь, switch_root exec s / sbin / init корневой файловой системы после очистки initramfs и привязки монтирования / root к / . Таким образом, init всегда остается PID 1.

Вы можете увидеть исходный код switch_root BusyBox здесь, на самом деле это довольно просто: https://git.busybox.net/busybox/plain/util-linux/switch_root.c Также есть длинный комментарий в конце, объясняющий, что происходит под капотом.

2
15.08.2016, 10:01
1 ответ

Отпечаток ключа (удаленного) хоста существует для проверки того, что вы разговариваете с правильной удаленной машиной. Однако отпечатки пальцев трудно запомнить. Вот тут-то и вступает в игру случайное искусство. Идея заключается в том, что человеку гораздо легче определить, что два изображения отличаются друг от друга, чем две шестнадцатеричные строки. Если ключ удаленного хоста внезапно меняется, по другому изображению можно определить, что, возможно, затевается что-то нечистое".

Чтобы активировать показ случайного изображения удаленной машины при входе в систему, добавьте VisualHostKey=yes в ваш .ssh/config файл

3
27.01.2020, 22:11

Теги

Похожие вопросы