SSHクライアントの使い方|Linux管理者が覚えるべき基本コマンド

SSHクライアントの使い方

SSHクライアントの基本操作と実務で役立つ使い方を学ぼう

SSH(Secure Shell)は、Linuxサーバをリモートから安全に操作するための標準的なプロトコルです。

サーバ側で動作するプログラムを「sshd(SSH Server)」と呼び、接続する側のプログラムを「SSHクライアント」と呼びます。

Linux管理者やインフラエンジニアにとってSSHクライアントは毎日利用するといっても過言ではありません。

サーバへのログイン、設定変更、ログ確認、障害対応など、多くの作業がSSH経由で行われています。

本記事ではSSHクライアントの基本的な使い方から実務でよく利用されるオプションまで詳しく解説します。

SSHクライアントとは

SSHクライアントとは、SSHサーバへ接続するためのソフトウェアです。

LinuxやmacOSではOpenSSH Clientが標準搭載されていることが一般的です。

Windowsでも近年はOpenSSH Clientが標準搭載されています。

代表的なSSHクライアントには以下があります。

  • OpenSSH Client
  • Tera Term
  • PuTTY
  • MobaXterm
  • SecureCRT

Linuxでは主にOpenSSH Clientが利用されます。

SSHクライアントがインストールされているか確認する

まずはSSHクライアントが利用できるか確認しましょう。

$ssh -V

実行例です。
OpenSSH_9.3p1

バージョン情報が表示されれば利用可能です。

基本的な接続方法

最も基本的な接続方法は以下です。

ssh ユーザー名@ホスト名

例:
$ ssh student@server01

IPアドレスを直接指定することもできます。
$ ssh student@192.168.60.101

接続後はサーバへログインした状態になります。

初回接続時のメッセージ

初めて接続するサーバでは以下のようなメッセージが表示されます。

The authenticity of host can't be established.
Are you sure you want to continue connecting (yes/no)?

これはサーバのホスト鍵を確認している状態です。

問題なければ「yes」を入力します。

すると情報が以下へ保存されます。

~/.ssh/known_hosts

次回以降は自動的に確認が行われます。

別ポートへ接続する

SSHの標準ポートは22番ですが、環境によって変更されている場合があります。

その場合は-pオプションを使用します。

$ ssh -p 2222 student@192.168.60.101

実務ではセキュリティポリシーによって変更されているケースがあります。

公開鍵認証を利用する

現在の企業環境では公開鍵認証が一般的です。

秘密鍵を指定して接続する場合は-iオプションを利用します。

$ ssh -i ~/.ssh/id_ed25519 student@192.168.60.101

接続時に秘密鍵を利用して認証が行われます。

接続時のユーザー名を省略する

現在のログインユーザーと同じユーザー名を利用する場合は省略できます。

$ ssh 192.168.60.101

接続元ユーザー名がそのまま使用されます。

リモートコマンドを実行する

SSHはログインだけでなくコマンド実行にも利用できます。

$ ssh student@server01 "hostname"

実行結果だけが表示されます。

シェルスクリプトや監視処理でよく利用されます。

例えばディスク使用量確認です。

$ ssh student@server01 "df -h"

デバッグ情報を表示する

接続できない場合は-vオプションを利用します。

$ ssh -v student@server01

さらに詳細な情報が必要な場合は以下を利用します。
ssh -vv
ssh -vvv

実務では障害調査時によく利用されます。

SSH設定ファイルを利用する

毎回長い接続情報を入力するのは面倒です。

その場合は設定ファイルを利用します。

設定ファイル:
~/.ssh/config

例:
Host web01
    HostName 192.168.60.101
    User student
    Port 22

設定後は以下だけで接続できます。

ssh web01$ 

複数サーバ管理では非常に便利です。

接続タイムアウトを指定する

接続待ち時間を指定するにはConnectTimeoutを利用します。

$ ssh -o ConnectTimeout=10 student@server01

10秒で接続を諦める設定になります。

自動化処理でよく利用されます。

ポートフォワーディングを利用する

SSHではトンネリング機能を利用できます。

ローカルフォワードの例です。

$ ssh -L 3306:localhost:3306 student@server01

ローカルPCからサーバ上のMySQLへ安全に接続できます。

実務ではデータベース保守で利用されることがあります。

SSHクライアントで利用される主なオプション

オプション説明
-p接続ポート指定
-i秘密鍵指定
-vデバッグ表示
-Lローカルフォワード
-Rリモートフォワード
-DSOCKSプロキシ
-oオプション指定

まずは-p、-i、-vの3つを覚えるとよいでしょう。

SSH接続できない場合の確認ポイント

SSH接続に失敗した場合は以下を確認します。

  • サーバが起動しているか
  • sshdが起動しているか
  • 22番ポートが開いているか
  • ファイアウォール設定
  • 公開鍵設定
  • ユーザー認証情報

特にLinuxサーバではfirewalldが原因となることが少なくありません。

以下で確認できます。

# firewall-cmd --list-services

実務でよく利用するSSHコマンド

管理者が日常的に利用するコマンド例です。

$ ssh server01
$ ssh -p 2222 server01
$ ssh -i ~/.ssh/id_ed25519 server01
$ ssh -v server01
$ ssh server01 "uptime"
$ ssh server01 "systemctl status httpd"

これらは障害対応や保守運用で頻繁に利用されます。

まとめ

SSHクライアントはLinuxサーバ管理に欠かせないツールです。

基本的な接続方法だけでなく、公開鍵認証、デバッグ表示、設定ファイルの利用方法を理解しておくことで運用効率を大幅に向上できます。

実務では毎日のように利用するため、まずはsshコマンドの基本操作に慣れることが重要です。

今後は公開鍵認証やSSH設定ファイル、ポートフォワーディングなどの応用機能も学習していくことで、より高度なサーバ管理が可能になるでしょう。