AlmaLinuxでサーバーを管理していると、「OpenSSHのバージョンって何だろう?」と確認したくなる場面がありますよね。
特に:
- セキュリティ脆弱性の対象バージョンか確認したい
- アップデートが必要か判断したい
- システムの構成情報をドキュメント化したい
- トラブルシューティングで情報が必要
こうした場面で、OpenSSHのバージョンを素早く確認する方法を知っておくと便利です。
OpenSSHは、リモートログインやファイル転送に使われる重要なソフトウェア。
セキュリティに直結するため、バージョン情報の確認は管理者の基本スキルなんですね。
この記事では、AlmaLinuxでOpenSSHのバージョンを確認する様々な方法を、初心者の方にも分かりやすく解説していきます。
コマンドラインでの確認方法を中心に、詳しく説明していきますよ。
OpenSSHとは?基本を理解しよう

まずは、OpenSSHについて基本を押さえておきましょう。
OpenSSH(オープンエスエスエイチ)の役割
OpenSSHは、Secure Shell(セキュアシェル)プロトコルの実装です。
主な用途:
- リモートログイン:別のコンピュータに安全に接続
- ファイル転送:SCPやSFTPでファイルをやり取り
- ポート転送:トンネリングでセキュアな通信
- 鍵認証:パスワードなしで安全にログイン
Linuxサーバーの管理には欠かせないツールですね。
クライアントとサーバー
OpenSSHには2つの役割があります。
OpenSSH Client(クライアント)
- 他のサーバーに接続する側
- sshコマンドを実行する
- 通常、デフォルトでインストール済み
OpenSSH Server(サーバー)
- 他のコンピュータからの接続を受け付ける側
- sshdデーモンが動作
- サーバー用途では必須
どちらのバージョンを確認したいかで、方法が少し変わってきます。
なぜバージョン確認が重要?
OpenSSHのバージョン確認が重要な理由:
1. セキュリティ脆弱性の確認
古いバージョンには既知の脆弱性があることも。
定期的にバージョンを確認して、最新版にアップデートすることが推奨されます。
2. 機能の互換性確認
新しい機能や暗号化方式は、特定バージョン以降でしか使えません。
バージョンを知っておくことで、使える機能が分かります。
3. トラブルシューティング
問題が発生した時、バージョン情報は重要なヒントになります。
既知のバグかどうか、調査の手がかりになるんですね。
4. システムドキュメント
サーバーの構成情報として、バージョンを記録しておくのはベストプラクティスです。
方法1:ssh -Vコマンドで確認(最も基本)
最も簡単で素早い確認方法です。
OpenSSH Clientのバージョン確認
ターミナルで以下のコマンドを実行します:
ssh -V
出力例:
OpenSSH_8.7p1, OpenSSL 3.0.7 1 Nov 2022
この出力から分かる情報:
- OpenSSHバージョン:8.7p1
- OpenSSLバージョン:3.0.7(暗号化ライブラリ)
- OpenSSLのリリース日:2022年11月1日
バージョン番号の読み方
OpenSSH_8.7p1の意味:
- 8:メジャーバージョン(大きな変更)
- 7:マイナーバージョン(機能追加)
- p1:パッチレベル(バグ修正)
pの後の数字が大きいほど、セキュリティ修正が適用されています。
注意点
ssh -Vで確認できるのは、クライアント側のバージョンです。
サーバー側(sshd)のバージョンとは異なる場合があるので注意しましょう。
大文字のVを使う理由
小文字の-vは「verbose(詳細表示)」モードなので、別の動作になります。
バージョン確認は必ず大文字の-Vを使ってください。
方法2:sshd -Vでサーバーバージョン確認
OpenSSHサーバー(sshd)のバージョンを確認する方法です。
sshdのバージョン確認コマンド
sshd -V
出力例:
unknown option -- V
OpenSSH_8.7p1, OpenSSL 3.0.7 1 Nov 2022
usage: sshd [-46DdeiqTt] [-C connection_spec] [-c host_cert_file]
...(以下、使用方法の説明)
実は、sshd -Vは正式なオプションではありません。
エラーとともにバージョンが表示される仕様なんですね。
root権限が必要な場合
環境によっては、sudoが必要かもしれません:
sudo sshd -V
より確実な方法
sshdコマンドが見つからない場合や、別の方法を試したい場合:
/usr/sbin/sshd -V
フルパスで指定すると確実です。
方法3:パッケージ情報で確認
パッケージ管理システムから確認する方法です。
dnfコマンドで確認
AlmaLinuxでは、dnfコマンドでパッケージ情報を確認できます。
インストール済みバージョンの確認:
dnf list installed | grep openssh
出力例:
openssh.x86_64 8.7p1-8.el9 @baseos
openssh-clients.x86_64 8.7p1-8.el9 @baseos
openssh-server.x86_64 8.7p1-8.el9 @baseos
この出力から分かる情報:
- openssh:基本パッケージ
- openssh-clients:クライアントツール
- openssh-server:サーバーデーモン
- 8.7p1-8.el9:バージョンとリリース情報
- @baseos:インストール元のリポジトリ
詳細情報の表示
特定のパッケージの詳細を確認:
dnf info openssh
出力例:
インストール済みパッケージ
名前 : openssh
バージョン : 8.7p1
リリース : 8.el9
アーキテクチャ: x86_64
サイズ : 1.8 M
ソース : openssh-8.7p1-8.el9.src.rpm
リポジトリー : @System
リポジトリーより: baseos
要約 : An open source implementation of SSH protocol version 2
より詳しい情報が表示されます。
rpmコマンドで確認
低レベルなパッケージ情報を確認:
rpm -qa | grep openssh
出力例:
openssh-8.7p1-8.el9.x86_64
openssh-clients-8.7p1-8.el9.x86_64
openssh-server-8.7p1-8.el9.x86_64
特定パッケージのバージョン
rpm -q openssh-server
出力例:
openssh-server-8.7p1-8.el9.x86_64
サーバーパッケージのバージョンがピンポイントで分かります。
方法4:実行ファイルの情報を確認
実行ファイル自体から情報を取得する方法です。
stringsコマンドで確認
strings /usr/bin/ssh | grep OpenSSH
出力例:
OpenSSH_8.7p1
バイナリファイルから文字列を抽出してバージョンを確認します。
サーバーバイナリの確認
strings /usr/sbin/sshd | grep OpenSSH
sshdのバイナリからも同様に確認できます。
whichコマンドで場所を確認
実行ファイルの場所が分からない場合:
which ssh
which sshd
出力例:
/usr/bin/ssh
/usr/sbin/sshd
パスを確認してから、stringsコマンドを実行できます。
方法5:systemctlでサービス情報を確認
sshdサービスの情報から確認する方法です。
サービスの状態確認
systemctl status sshd
出力例:
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: enabled)
Active: active (running) since Mon 2024-01-15 10:30:22 JST; 2 days ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 1234 (sshd)
Tasks: 1 (limit: 23456)
Memory: 2.5M
CPU: 1.234s
CGroup: /system.slice/sshd.service
└─1234 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
直接的なバージョン情報は表示されませんが、サービスが動作しているか確認できます。
プロセス情報の確認
ps aux | grep sshd
出力例:
root 1234 0.0 0.1 123456 7890 ? Ss 10:30 0:01 sshd: /usr/sbin/sshd -D [listener]
実行中のsshdプロセスを確認できます。
方法6:接続時のバナーで確認
リモートからサーバーのバージョンを確認する方法です。
SSHバナーの取得
ssh -v localhost 2>&1 | grep "SSH-"
または
telnet localhost 22
出力例:
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_8.7
サーバーが応答するSSHプロトコルのバージョンが表示されます。
ncコマンドで確認
nc localhost 22
または
echo "" | nc localhost 22
シンプルにバナーを取得できます。
セキュリティ上の注意
デフォルトでは、接続時にバージョン情報が表示されます。
セキュリティ上、バージョンを隠したい場合は、/etc/ssh/sshd_configで設定変更が可能です。
OpenSSLのバージョンも確認

OpenSSHと一緒に使われるOpenSSLのバージョン確認も重要です。
OpenSSLのバージョン確認
openssl version
出力例:
OpenSSL 3.0.7 1 Nov 2022 (Library: OpenSSL 3.0.7 1 Nov 2022)
詳細情報の表示
openssl version -a
出力例:
OpenSSL 3.0.7 1 Nov 2022 (Library: OpenSSL 3.0.7 1 Nov 2022)
built on: Thu Nov 3 15:00:00 2022 UTC
platform: linux-x86_64
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall ...
OPENSSLDIR: "/etc/pki/tls"
ENGINESDIR: "/usr/lib64/engines-3"
MODULESDIR: "/usr/lib64/ossl-modules"
より詳細な情報が表示されます。
なぜOpenSSLも重要?
OpenSSHは、暗号化処理をOpenSSLに依存しています。
OpenSSLに脆弱性がある場合、OpenSSHも影響を受けるため、両方のバージョン管理が必要なんです。
セキュリティアップデートの確認
バージョン確認後、アップデートが必要か判断しましょう。
利用可能なアップデートの確認
dnf check-update openssh openssh-server openssh-clients
出力例(アップデートがある場合):
openssh.x86_64 8.7p1-10.el9 baseos
openssh-clients.x86_64 8.7p1-10.el9 baseos
openssh-server.x86_64 8.7p1-10.el9 baseos
新しいバージョンが利用可能な場合、表示されます。
出力なし(最新の場合):
何も表示されなければ、既に最新版です。
セキュリティアップデートの確認
dnf updateinfo list security
セキュリティ関連のアップデートのみを確認できます。
アップデート方法
アップデートが必要な場合:
sudo dnf update openssh openssh-server openssh-clients
または、システム全体をアップデート:
sudo dnf update
アップデート後の確認
アップデート後は、必ずバージョンを再確認:
ssh -V
sshdサービスの再起動も忘れずに:
sudo systemctl restart sshd
バージョン情報のログ出力
システム管理のため、情報を記録しておきましょう。
バージョン情報をファイルに保存
ssh -V 2>&1 | tee ~/openssh_version.txt
2>&1はエラー出力を標準出力にリダイレクト(ssh -Vは標準エラー出力に出力されるため)。
システム情報の一括取得
cat << EOF > ~/system_info.txt
=== OpenSSH Version ===
$(ssh -V 2>&1)
=== OpenSSH Packages ===
$(rpm -qa | grep openssh)
=== OpenSSL Version ===
$(openssl version)
=== SSHD Status ===
$(systemctl status sshd --no-pager)
EOF
複数の情報をまとめて1つのファイルに保存できます。
定期的な記録
システム変更時には、必ずバージョン情報を記録する習慣をつけましょう。
トラブルシューティング
バージョン確認時によくある問題と解決方法です。
問題1:「command not found」エラー
原因:
OpenSSHがインストールされていません。
解決方法:
# インストール状況確認
rpm -qa | grep openssh
# インストールされていない場合
sudo dnf install openssh openssh-clients openssh-server
問題2:sshd -Vがエラーになる
原因:
sshdコマンドへのパスが通っていないか、権限がありません。
解決方法:
# フルパスで実行
/usr/sbin/sshd -V
# またはroot権限で
sudo sshd -V
問題3:バージョンが古すぎる
原因:
長期間アップデートしていません。
解決方法:
# アップデート可能なバージョン確認
dnf list available openssh
# アップデート実行
sudo dnf update openssh openssh-server openssh-clients
# サービス再起動
sudo systemctl restart sshd
問題4:クライアントとサーバーのバージョンが違う
原因:
パッケージが個別に更新されている可能性があります。
解決方法:
# すべてのOpenSSH関連パッケージを同時に更新
sudo dnf update openssh*
# インストール済みバージョンの確認
rpm -qa | grep openssh
問題5:バージョン確認コマンドが遅い
原因:
DNSの逆引きなどで時間がかかっている可能性があります。
解決方法:
ssh -Vやsshd -Vは通常高速です。
もし遅い場合は、ネットワーク設定やDNS設定を確認してください。
セキュリティベストプラクティス
バージョン管理に関するセキュリティ上の推奨事項です。
定期的なバージョンチェック
月次または週次でバージョンを確認:
ssh -V
dnf check-update openssh
セキュリティアップデートを見逃さないようにしましょう。
セキュリティ情報の購読
AlmaLinuxのセキュリティメーリングリストや、OpenSSHのセキュリティアナウンスを購読します。
重大な脆弱性が発見された時、迅速に対応できます。
脆弱性データベースの確認
既知の脆弱性を確認:
CVE(Common Vulnerabilities and Exposures)データベースで、自分の使用バージョンに該当する脆弱性がないかチェックします。
バージョン情報の非表示
本番環境では、SSHバナーでバージョン情報を隠すことも検討しましょう。
/etc/ssh/sshd_config:
# バナーの変更(バージョン非表示)
Banner /etc/ssh/banner.txt
ただし、セキュリティ対策としては「隠すこと」より「最新版を使うこと」が重要です。
ログの監視
SSH接続ログを定期的に確認:
sudo tail -f /var/log/secure
不審なアクセスがないかチェックしましょう。
まとめ:定期的なバージョン確認でセキュリティを保つ
AlmaLinuxでOpenSSHバージョンを確認する方法をまとめます。
主な確認方法:
1. ssh -V(最も簡単)
ssh -V
- クライアント側のバージョン
- 最も素早く確認できる
2. sshd -V
sshd -V
- サーバー側のバージョン
- エラーとともに表示される
3. パッケージ情報
dnf list installed | grep openssh
rpm -qa | grep openssh
- インストール済みパッケージ情報
- リリース番号も確認できる
4. 詳細情報
dnf info openssh
- パッケージの詳細情報
- リポジトリ情報も分かる
確認すべき項目:
- OpenSSHのバージョン
- OpenSSLのバージョン
- パッチレベル
- 利用可能なアップデート
関連コマンド:
openssl version:OpenSSLバージョンdnf check-update openssh:アップデート確認systemctl status sshd:サービス状態
バージョン番号の見方:
- OpenSSH_8.7p1 = バージョン8.7、パッチレベル1
- メジャー.マイナーp(パッチ)
セキュリティ管理:
- 定期的なバージョンチェック
- セキュリティアップデートの適用
- 脆弱性情報の確認
- ログの監視
アップデート方法:
sudo dnf update openssh openssh-server openssh-clients
sudo systemctl restart sshd
重要なポイント:
- OpenSSHは頻繁に脆弱性が発見される
- 古いバージョンの使用は危険
- 定期的なアップデートが必須
- バージョン情報はドキュメント化
OpenSSHのバージョン確認は、サーバー管理者の基本スキルです。
セキュリティに直結する重要なソフトウェアなので、常に最新の状態に保つことが推奨されます。
この記事で紹介したコマンドを使って、定期的にバージョンをチェックし、必要に応じてアップデートを実行しましょう。
特に、セキュリティ脆弱性が公開された時は、速やかにバージョンを確認して、影響があるか判断することが大切です。
サーバーのセキュリティを保つため、OpenSSHのバージョン管理を習慣化してくださいね!

コメント