sha256sumコマンドでファイルの整合性を確認する方法|md5sumとの使い分けやダウンロード検証も

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, セキュリティ管理コマンド > sha256sumコマンドでファイルの整合性を確認する方法|md5sumとの使い分けやダウンロード検証も
「ダウンロードしたISOイメージや圧縮ファイルが、転送中に壊れていないか不安になったことはありませんか?」
公式サイトからRHELやUbuntuのISOを取得したとき、チェックサムファイルが一緒に置かれているのを見た人は多いはずです。しかし「確認のやり方がよくわからない」「md5sumとsha256sumのどちらを使えばいいか迷う」という声は、セミナーでも毎回聞かれます。

この記事では、sha256sum コマンドを使ったファイルの整合性確認方法を、RHEL 9.4 / Ubuntu 24.04 LTS の実行例とともに解説します。md5sumとの違い、チェックサムファイルによる一括検証、バックアップの定期確認スクリプトまでカバーします。

この記事のポイント

・sha256sum でハッシュ値を計算し、公式チェックサムと比較してファイルの改ざんを検出できる
・sha256sum -c でチェックサムファイルを使った一括検証が可能
・md5sum は高速だが衝突リスクがあり、セキュリティ目的には sha256sum 以上を推奨
・スクリプトに組み込めば、バックアップや定期確認を自動化できる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

チェックサムとは?なぜsha256sumを使うのか

チェックサム(ハッシュ値)とは、ファイルの内容から計算された「指紋」のようなものです。ファイルが1ビットでも変わると、ハッシュ値は全く異なる値になります。これを利用して、ファイルの改ざんや転送中の破損を検出できます。

現在よく使われるチェックサムコマンドは次のとおりです。

md5sum:古くから使われる。計算が速いが、意図的な衝突生成が可能なため、セキュリティ用途には不推奨
sha1sum:MD5より安全だが、2017年に実用的な衝突攻撃「SHAttered」が実証された
sha256sum:現在のセキュリティ標準。ダウンロード検証やパッケージ管理に広く採用されている
sha512sum:sha256よりさらに安全。厳格なセキュリティが求められる環境向け

Linuxディストリビューションの公式サイトでは、ISOファイルとともに SHA256SUMSsha256sum.txt が提供されています。インストール前にこれを使って検証するのが、安全確認の基本です。

sha256sum コマンドは coreutils パッケージに含まれており、追加インストールなしで利用できます。

# バージョン確認(インストール確認兼用) sha256sum --version

sha256sumコマンドの基本的な使い方

1. ファイルのSHA256ハッシュ値を計算する

最も基本的な使い方です。ファイル名を引数に渡すだけでハッシュ値を計算できます。

# 書式 sha256sum ファイル名 # ISOファイルのハッシュ値を確認する例 sha256sum rhel-9.4-x86_64-dvd.iso

実際のサーバーでの実行例です(RHEL 9.4 環境)。

[admin@web01 download]$ sha256sum rhel-9.4-x86_64-dvd.iso a387f1f19cb95b6f8cdb428b22f3c4c9c79c64e8fe2afb5b03f5e92c069de29d rhel-9.4-x86_64-dvd.iso

出力は「ハッシュ値 ファイル名」の形式です。ハッシュ値とファイル名の間には半角スペースが2つあります。先頭の2文字がスペース(「 」)のときはテキストモード、アスタリスク(「*」)のときはバイナリモードを示します。

複数ファイルをまとめて計算する場合はスペース区切りで並べます。

[admin@web01 ~]$ sha256sum /etc/passwd /etc/hosts /etc/hostname 8e9d3e4b2c1f0a7b5d6e2f1a3b8c5d4e7f9a0b2c3d4e5f6a7b8c9d0e1f2a3b4 /etc/passwd 1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b /etc/hosts e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /etc/hostname

2. チェックサム値をファイルに保存する

検証用のチェックサムファイルを作成するには、シェルのリダイレクトを使います。

# ハッシュ値をファイルに書き出す sha256sum ファイル名 > チェックサムファイル名 # 実例 sha256sum rhel-9.4-x86_64-dvd.iso > rhel-9.4-x86_64-dvd.iso.sha256

保存したファイルの内容を確認します。

[admin@web01 download]$ cat rhel-9.4-x86_64-dvd.iso.sha256 a387f1f19cb95b6f8cdb428b22f3c4c9c79c64e8fe2afb5b03f5e92c069de29d rhel-9.4-x86_64-dvd.iso

複数ファイルを一括してチェックサムファイルに記録する場合は、ワイルドカードを使います。tar コマンドの実用例のようにアーカイブファイルを大量に扱う環境では、このようにまとめてチェックサムを管理するのが効率的です。

# /backup/ 配下の全 tar.gz のチェックサムをまとめて記録 sha256sum /backup/*.tar.gz > /backup/.checksums.sha256

3. チェックサムファイルで整合性を一括検証する

-c--check)オプションを使うと、チェックサムファイルに記録された全ファイルを一括検証できます。

# チェックサムファイルで一括検証 sha256sum -c チェックサムファイル名 # 実例 sha256sum -c rhel-9.4-x86_64-dvd.iso.sha256

正常な場合の出力です。

[admin@web01 download]$ sha256sum -c rhel-9.4-x86_64-dvd.iso.sha256 rhel-9.4-x86_64-dvd.iso: OK

ファイルが改ざんまたは破損している場合は次のように表示されます。

[admin@web01 download]$ sha256sum -c rhel-9.4-x86_64-dvd.iso.sha256 rhel-9.4-x86_64-dvd.iso: FAILED sha256sum: WARNING: 1 computed checksum did NOT match

複数ファイルの検証で問題のあるファイルのみ表示したい場合は --quiet を付けます。スクリプトに組み込む際は --status で終了コードのみ取得するのが便利です。

# 問題のあるファイルのみ表示(OK行を非表示) sha256sum -c checksum.sha256 --quiet # 終了コードのみ取得(スクリプト組み込み用) # 0 = 全OK、1 = 1件以上不一致 sha256sum -c checksum.sha256 --status echo $?

md5sum・sha1sum・sha512sumとの使い分け

1. md5sum(高速だが衝突リスクあり)

md5sum は MD5アルゴリズムを使用します。計算が非常に速いため、セキュリティよりも速度が求められる用途(ファイル転送後の簡易確認など)に使われることがあります。

[admin@web01 backup]$ md5sum backup-2026-05-08.tar.gz 8d94c3b2e1f0a7b4c9d6e2f1a8b5c3d2 backup-2026-05-08.tar.gz

【注意】2004年以降にMD5の衝突攻撃が実証されています。悪意のある攻撃者が同じMD5値を持つ別のファイルを意図的に作成できるため、セキュリティ目的のファイル検証には使用しないでください。

2. sha1sum(後方互換用)

sha1sum は SHA-1アルゴリズムを使用します。MD5より安全ですが、Google のセキュリティチームが2017年に「SHAttered」攻撃で実用的な衝突を実証しました。新規システムへの採用は非推奨です。既存システムとの互換性が必要な場合のみ使用してください。

sha1sum ファイル名

3. sha512sum(最高セキュリティが必要な場合)

sha512sum は SHA-512アルゴリズムを使用し、sha256sum より長い(512ビット)ハッシュ値を生成します。現時点では実用的な攻撃手法は知られていません。金融システムや機密データの管理など、より厳格なセキュリティが求められる環境向けです。

[admin@web01 ~]$ sha512sum sensitive-data.tar.gz c6ee9e33cf5c6a2e1a3b5e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2 sensitive-data.tar.gz

各コマンドの特徴をまとめます。
コマンド アルゴリズム ハッシュ長 セキュリティ強度 主な用途
md5sum ファイル名 MD5 128bit 低(衝突リスクあり) 簡易確認・レガシー互換
sha1sum ファイル名 SHA-1 160bit 中(衝突実証済み) 後方互換用
sha256sum ファイル名 SHA-256 256bit 高(現行標準) ダウンロード検証・標準推奨
sha512sum ファイル名 SHA-512 512bit 非常に高 高セキュリティ要件

実務での活用Tips

1. Linuxディストリビューションのダウンロード検証手順

RHELやUbuntuの公式サイトでは、ISOファイルとともにチェックサムファイルが提供されています。以下の手順でインストール前に検証してください。

# ステップ1: ISOとチェックサムファイルが同じディレクトリにあることを確認 [admin@web01 download]$ ls -lh -rw-r--r--. 1 admin admin 9.4G May 8 09:00 rhel-9.4-x86_64-dvd.iso -rw-r--r--. 1 admin admin 100 May 8 09:00 SHA256SUM # ステップ2: チェックサムファイルの内容を確認(公式値の目視確認) [admin@web01 download]$ cat SHA256SUM a387f1f19cb95b6f8cdb428b22f3c4c9c79c64e8fe2afb5b03f5e92c069de29d rhel-9.4-x86_64-dvd.iso # ステップ3: sha256sum -c で検証実行 # verify: compare downloaded file against official SHA256SUM [admin@web01 download]$ sha256sum -c SHA256SUM rhel-9.4-x86_64-dvd.iso: OK

「OK」が表示されれば、ダウンロードしたファイルが公式のものと完全に一致しています。

2. バックアップファイルの整合性を定期確認するスクリプト

定期バックアップを行っている環境では、バックアップ直後にチェックサムを生成し、次回起動時に検証することでストレージ障害やビット腐食を早期に検出できます。

#!/bin/bash # バックアップ整合性確認スクリプト BACKUP_DIR="/backup/daily" CHECKSUM_FILE="${BACKUP_DIR}/.checksums.sha256" # 前回のチェックサムが存在する場合は先に検証 if [ -f "${CHECKSUM_FILE}" ]; then echo "前回チェックサムを検証中..." sha256sum -c "${CHECKSUM_FILE}" --quiet if [ $? -ne 0 ]; then echo "[ERROR] チェックサム不一致。ファイルが変更された可能性があります" >&2 exit 1 fi echo "前回分: 整合性OK" fi # 今回のバックアップのチェックサムを生成・更新 sha256sum "${BACKUP_DIR}"/*.tar.gz > "${CHECKSUM_FILE}" echo "チェックサムを更新しました: ${CHECKSUM_FILE}"

このスクリプトを cron に登録しておけば、毎日バックアップの整合性を自動確認できます。

3. RPMパッケージのハッシュ検証との違い

RHELやCentOS環境では、RPMパッケージ自体に署名とハッシュが内包されています。インストール済みパッケージの整合性を確認する場合は sha256sum ではなく rpm -V コマンドを使います。rpm コマンドの使い方も合わせて参照してください。

sha256sum が活躍するのは「RPMパッケージをダウンロードしてインストールする前」や「公式リポジトリ外からファイルを取得したとき」です。

「WARNING: 1 computed checksum did NOT match」エラーが出たときの対処法

このエラーは、ファイルのハッシュ値が記録された値と一致しない場合に表示されます。主な原因と対処法を確認してください。

原因1:ダウンロード中の破損
ネットワーク障害や不安定な接続が原因でファイルが破損した可能性があります。
→ ファイルをダウンロードし直してから再検証してください。

原因2:チェックサムファイルが古い・ミラーサイトからの取得
配布ミラーサイトのチェックサムファイルが更新前のものだった可能性があります。
→ 公式サイトから直接チェックサムファイルを再取得し、HTTPSで提供されていることを確認してください。

原因3:テキストモードとバイナリモードの混在
WindowsとLinux間でファイルをやり取りした場合、改行コード変換によりハッシュ値が変わることがあります。
→ チェックサムファイルの2列目先頭が「*」かスペースかを確認し、統一してください。

原因4:ファイル名のパスが一致しない
チェックサムファイルに記録されたパスとファイルの実際のパスが異なる場合にも FAILED になります。
→ sha256sum -c を実行するディレクトリとチェックサムファイルが同じ階層にあることを確認してください。

# チェックサムファイルの内容を確認してパスの食い違いを確認する cat checksum.sha256 # 正: ファイル名のみ(相対パス) a387f1... rhel-9.4-x86_64-dvd.iso # 誤: 絶対パスで記録されているとパスが合わない場合がある a387f1... /home/admin/download/rhel-9.4-x86_64-dvd.iso

本記事のまとめ

やりたいこと コマンド
ファイルのSHA256ハッシュ値を計算する sha256sum ファイル名
ハッシュ値をファイルに保存する sha256sum ファイル名 > ファイル名.sha256
チェックサムファイルで一括検証する sha256sum -c チェックサムファイル
問題のあるファイルのみ表示する sha256sum -c チェックサムファイル --quiet
終了コードのみ取得する(スクリプト用) sha256sum -c チェックサムファイル --status
MD5ハッシュ値を計算する md5sum ファイル名
SHA-512ハッシュ値を計算する sha512sum ファイル名
sha256sum はダウンロード検証からバックアップ確認まで、幅広く使えるコマンドです。外部から取得したファイルは、必ずチェックサムを確認する習慣をつけておきましょう。

sha256sumで安全を確認したら、次はサーバー構築の基礎を固めませんか?

セキュリティの基本を押さえれば、Linuxサーバー管理の安心感は大きく変わります。その力を活かして、体系的にLinuxサーバー構築を学んでみませんか。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。