sha256checksum – как сравнить локальный файл с контрольной суммой удаленного оригинала

Вопрос или проблема

У меня есть локальный файл file1, а также контрольная сумма sha256 оригинального файла.

Удаленный сервер – это rhel8 server, локальный инструмент sha256sum внутри git bash на ноутбуке с Windows10.

Ради бога, я, кажется, не могу адекватно сравнить их.

На удаленном сервере я получаю

~> sha256sum file1
55dcd0a7046a24e5ee296d1481d6f787b1956d138bbfb6e44ca8591006367f27  file1

Итак, мой вопрос в том, как я могу сравнить эту локально созданную сумму с контрольной суммой, которую я получил на удаленном сервере?

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

Или действительно приходится полагаться на зрение, чтобы сравнить эти два значения, или создавать дополнительные текстовые файлы, содержащие каждую контрольную сумму, и выполнять сравнение?

Лучший способ, который я смог придумать, это

echo [sha удаленного файла] ; sha256sum file1
55dcd0a7046a24e5ee296d1481d6f787b1956d138bbfb6e44ca8591006367f27
55dcd0a7046a24e5ee296d1481d6f787b1956d138bbfb6e44ca8591006367f27 *file1

… а затем сравнивать эти две строки, используя свое зрение.

Нет ли ничего лучше?

В инструкции сказано

       -c, --check
              прочитать контрольные суммы SHA256 из файлов и проверить их

Но что это практически означает?
sha256sum file1 --check [sha удаленного файла] звучит логично для меня, но не работает.

Также не работает

:~> sha256sum file1 --check
sha256sum: file1: сформатированные строки контрольной суммы SHA256 не найдены

Вам нужно поместить строку контрольной суммы в файл и использовать это:

  1. поместите 55dcd0a7046a24e5ee296d1481d6f787b1956d138bbfb6e44ca8591006367f27 file1 в файл, скажем, checksum.txt, рядом с file1.
  2. sha256sum -c checksum.txt.

В качестве альтернативы, sha256sum также может читать файлы контрольных сумм из стандартного ввода:

echo "55dcd0a7046a24e5ee296d1481d6f787b1956d138bbfb6e44ca8591006367f27  file1" | sha256sum -c -

Спасибо @ZOOM за комментарий. Я нашел рабочее решение на YouTube. И ответ – grep

:~> sha256sum file1 | grep 5dcd0a7046a24e5ee296d1481d6f787b1956d138bbfb6e44ca8591006367f27

Если это успешно, выход вашей локальной команды sha совпадает с удаленным хешем.

Ответ или решение

Для сравнения локального файла с контрольной суммой SHA256 оригинального файла, находящегося на удалённом сервере RHEL 8, вы можете использовать несколько подходов.

1. Сравнение с использованием файла контрольных сумм

Наиболее простым и надёжным способом является создание текстового файла, в котором будет записана контрольная сумма и имя файла. Вот пошаговая инструкция:

Шаг 1: Создание текстового файла контрольных сумм

На удалённом сервере выполните следующую команду, чтобы получить контрольную сумму вашего файла:

sha256sum file1

Вы увидите вывод, который будет похож на:

55dcd0a7046a24e5ee296d1481d6f787b1956d138bbfb6e44ca8591006367f27  file1

Скопируйте эту строку и создайте текстовый файл, например, checksum.txt, на сервере с содержимым:

55dcd0a7046a24e5ee296d1481d6f787b1956d138bbfb6e44ca8591006367f27  file1

Шаг 2: Использование команды sha256sum для проверки

Теперь, находясь в вашем терминале Git Bash на Windows, выполните следующую команду:

sha256sum -c checksum.txt

Эта команда проверит контрольную сумму вашего локального файла и сообщит, совпадает ли она с сохраненной в checksum.txt. Если контрольные суммы совпадают, вы получите вывод:

file1: OK

Если контрольные суммы различаются, будет показано сообщение об ошибке.

2. Проверка контрольной суммы с помощью стандартного ввода

Второй вариант заключается в том, чтобы использовать стандартный ввод. Вы можете передать строку с контрольной суммой непосредственно в команду sha256sum. Для этого выполните следующую команду в вашем термнале Git Bash:

echo "55dcd0a7046a24e5ee296d1481d6f787b1956d138bbfb6e44ca8591006367f27  file1" | sha256sum -c -

Если контрольная сумма совпадает, то вывод будет аналогичен:

file1: OK

3. Использование grep для быстрой проверки

Если вы предпочтете более простой и быстрый способ, вы можете воспользоваться командой grep. Сделайте хэш вашего локального файла и сравните его с контрольной суммой:

sha256sum file1 | grep 55dcd0a7046a24e5ee296d1481d6f787b1956d138bbfb6e44ca8591006367f27

Если совпадение найдено, то это означает, что контрольная сумма локального файла соответствует оригинальной.

Вывод

В зависимости от ваших потребностей, вы можете выбрать один из вышеописанных методов. Первый и второй подходы более системные и уменьшают вероятность ошибки, в то время как использование команды grep является быстрой альтернативой. Каждый из этих методов обеспечит надёжную проверку целостности файла и поможет убедиться в том, что файл на вашем локальном компьютере соответствует оригиналу на удалённом сервере.

Оцените материал
Добавить комментарий

Капча загружается...