Categories: linuxUbuntu技術

Linux SSHコマンド完全ガイド:基本から応用まで網羅的解説

LinuxにおけるSSH(Secure Shell)コマンドは、リモートサーバーへ安全に接続して操作するための重要なツールです。本記事では、SSHの基本構文、各種オプション、実用的な使い方、関連ツールまでをわかりやすく解説します。初めての方から中級者まで役立つ内容を網羅しています。

SSHとは?

SSHとは「Secure Shell」の略称で、インターネットやLAN上の他のコンピュータへ暗号化された通信経路を確立し、安全にリモート操作を行うためのプロトコルです。パスワードやコマンドなどの通信内容は全て暗号化されるため、盗聴や改ざんリスクを大幅に低減できます。

SSHコマンドの基本構文

SSHコマンドは以下の構文で実行します。

ssh [オプション] [ユーザー名@]ホスト名 [実行したいコマンド]
  • 例: ssh user@hostname
  • 例(リモートでコマンドのみ実行): ssh user@hostname ls -l
  • リモートのホスト名やIPアドレスを指定し、必要に応じてユーザー名を付けます.

代表的なSSHオプション一覧

オプション説明
-l接続ユーザー名の指定(例:ssh -l user host
-pポート番号の指定(デフォルトは22)
-i秘密鍵ファイルの指定(例:ssh -i ~/.ssh/id_rsa
-C通信の圧縮を有効にする
-oSSH設定のカスタムパラメータ指定
-v詳細なデバッグ情報を表示(トラブルシューティング用)
-qエラーメッセージを抑制(quiet mode)
-XX11転送を有効化(リモートでGUIアプリケーション実行)
-A認証エージェント転送を有効にする
-Lローカルポートフォワーディング設定(トンネリング)
-Rリモートポートフォワーディング設定
-Nコマンド実行なしでトンネル作成のみ(デーモン用途)
-fバックグラウンド実行(-Nと併用多し)
-F設定ファイル指定(例:ssh -F configfile user@host
-Eログ出力ファイルの指定
-1 / -2SSHプロトコルのバージョン指定(古い環境用)
-4 / -6IPv4またはIPv6のみに制限

SSH接続の実践例と応用テクニック

基本接続

ssh user@192.168.1.100

ユーザー名userでIP192.168.1.100のサーバに接続。

ポート番号変更

ssh -p 2222 user@hostname

標準以外のポートに接続する際に指定。

秘密鍵利用の接続

ssh -i ~/.ssh/id_rsa user@hostname

公開鍵認証で秘密鍵ファイルを指定。

コマンドを実行して終了

ssh user@hostname 'ls -l /var/log'

ログディレクトリのファイル一覧を取得して切断。

X11転送でGUIアプリの利用

ssh -X user@hostname

リモートマシンのGUIアプリをローカルに表示。

ポートフォワーディング例

  • ローカルからリモートのWebサーバーアクセス: ローカルの8080ポートをリモートの80番に中継。
ssh -L 8080:localhost:80 user@hostname
  • リモート側でポートを待ち受ける例:
ssh -R 9090:localhost:3000 user@hostname

バックグラウンド実行

ssh -f -N user@hostname

トンネル作成だけして端末制御を戻す。


SSH鍵管理と設定のポイント

  • 鍵生成にはssh-keygenを利用。最新はED25519タイプが推奨されます。
ssh-keygen -t ed25519
  • 公開鍵はサーバの~/.ssh/authorized_keysに登録し、パスワードより安全にログイン可能.
  • クライアント側~/.ssh/configファイルで接続設定を管理すれば
Host myserver HostName example.com User user Port 2222 IdentityFile ~/.ssh/id_rsa

次回以降はssh myserverだけで接続可能.

SSH関連コマンド

  • ssh-keygen:新規鍵ペア作成
  • ssh-copy-id:公開鍵をサーバに一括転送
  • scp:リモートとファイルコピー
  • sftp:安全なファイル転送プロトコル

SSH接続時のセキュリティ注意点

  • 初回接続時に出るホスト鍵のフィンガープリントを必ず確認。
  • 不要なポートは閉じ、サーバ側でSSHのパスワード認証を無効化し公開鍵認証のみの設定推奨。
  • SSHのバージョンアップ、ログ監視などの運用も重要。

まとめ

LinuxのSSHコマンドはリモート操作の基本。豊富なオプションで安全かつ柔軟に接続できます。鍵認証やポートフォワーディングなどを活用し、快適なリモート作業環境を構築しましょう。

このまとめが、SSHコマンドの理解と使いこなしに役立つことを願います。

にいやん

出身 : 関西 居住区 : 関西 職業 : 組み込み機器エンジニア (エンジニア歴13年) 年齢 : 38歳(2022年11月現在) 最近 業務の効率化で噂もありPython言語に興味を持ち勉強しています。 そこで学んだことを記事にして皆さんとシェアさせていただければと思いブログをはじめました!! 興味ある記事があれば皆さん見ていってください!! にほんブログ村