SSH(Secure Shell)とは?初心者向けにわかりやすく3分で解説

IT-Skills

SSHSecure Shell)は、インターネットを介してリモートコンピュータと安全に通信するためのプロトコルです。

わかりやすく言うと、例えば家から会社のサーバルームにあるサーバやルータ等の機器を遠隔操作する際などに利用するイメージです。

図1:SSHイメージ

パスワードやデータを暗号化し通信内容を保護することができ、SSHを使うことで遠隔地にあるサーバーにログインしてコマンドを実行したり、ファイルの転送を行ったりできます。

また、SSHは鍵ペア(公開鍵と秘密鍵)を用いた認証方式を採用しており、セキュリティを強化。IT初心者でも基本的な操作をマスターすれば、便利で安全なリモートアクセスが可能になります。

このページではSSH(Secure Shell)とは何か?をIT初心者向けにわかりやすく簡潔に解説します。

このページで学べる内容
  • SSH(Secure Shell)とは?
    • Telnetとの違い

ネットワークエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識の1つです。是非最後までご覧ください。

スポンサーリンク

SSH(Secure Shell)とは?

SSH(Secure Shell)とは、インターネットを通じてリモートコンピュータと安全に通信するためのプロトコルです。

参考 プロトコルとは?

ざっくり説明すると、家や会社からサーバーに対して遠隔操作(ファイル転送やソフトウェアのダウンロード)を行うために利用する通信プロトコルというイメージ。データ通信の中身が暗号化されて、認証の仕組みも複数持っているのでセキュリティ的にも安心なので、サーバに対する遠隔操作を行う最も主流なプロトコルです。

SSHのコマンド

言葉だけで説明されてもイメージしづらいと思うので、ちょっと実演してみたいと思います。

SSHを利用し、サーバ上にあるファイルの一覧を取得してみます。

まずは、SSHコマンドを使用して接続先のホスト名またはIPアドレス、ユーザー名、およびポート番号を指定します。

上記の例では "user" はログインするユーザー名、"example.com" は接続先のホスト名、ポート番号は22です。

ssh user@example.com -p 22

参考 TCPとは

パスワードを入力してログインすると、サーバーに接続されプロンプトが表示されるので、ファイルとディレクトリをリストアップするために、"ls -la" と入力してみます。

ls -la

結果がこちら。

total 12
drwxr-xr-x   3 user  staff    96 Mar 18 15:16 .
drwxr-xr-x+ 44 user  staff  1408 Mar 22 13:10 ..
-rw-r--r--   1 user  staff   752 Mar 18 15:16 file1.txt

ファイルとディレクトリの詳細情報が表示されます。

file1.txtファイルのパーミッション、オーナー、グループ、サイズ、および最終更新日時が表示されています。

イメージはこんな感じです。やっていることは単純。これを応用する形でファイル転送やソフトウェアのインストール等を実施したりすることができます。

以下に代表的なコマンドの一覧を記載しておきます。

ssh: リモートサーバーにSSH接続を開始する
例:ssh user@example.com

scp: ファイル転送
例:scp user@example.com:/path/to/remote/file /path/to/local/destination

ssh-keygen: SSHキーペアの生成や管理
例:ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa

ssh-copy-id: SSH公開鍵をリモートサーバーにコピー
例:ssh-copy-id user@example.com

ssh-add: SSH秘密鍵をエージェントに追加
例:ssh-add ~/.ssh/id_rsa

ssh-agent: SSHエージェントを起動
例:ssh-agent bash

sftp: セキュアなFTP(File Transfer Protocol)セッションを開始
例:sftp user@example.com

sshfs: リモートファイルシステムをマウントします。
例:sshfs user@example.com:/path/to/remote/folder /path/to/local/folder

SSHとTelnetの違い

SSHと同じようなプロトコルにTelnetがあります。どちらもリモートアクセスプロトコルであり、ネットワーク経由で別のコンピューターに接続してコマンドライン操作を行うことができるという点で共通です。

参考 Telnetとは?

ただし、SSHとtelnetには以下のような差異があるので頭に入れておきましょう。

大まかに言うと「SSHの方がセキュリティが高いので、SSHを使いましょう!」ということです。

ssh telnet
項目SSHTelnet
セキュリティデータが暗号化されるためセキュリティが向上する平文(暗号化せずにそのまま)で接続を行うためデータが傍受される可能性がある
認証公開鍵認証やパスワード認証をサポートしセキュリティを強化できるパスワード認証のみをサポートしている
ポート番号ポート番号22を使用するポート番号23を使用する
プロトコルTCPを使用するTCPまたはUDPを使用できる
機能ファイル転送やポート転送など様々な機能がある機能が限定されており基本的なコマンドライン操作のみが可能

参考 TCP / UDP

SSHのまとめ
  • リモートサーバーを遠隔操作するためのネットワークプロトコル
  • Telnetなどの他のリモートアクセスプロトコルと比較して高いセキュリティ性と機能性を備える
  • ポート番号22を使用する
  • コマンドラインインタフェースを通じてリモートサーバー上での操作を行う

代表的なSSHコマンドの例

ssh: リモートサーバーにSSH接続を開始する
例:ssh user@example.com

scp: ファイル転送
例:scp user@example.com:/path/to/remote/file /path/to/local/destination

ssh-keygen: SSHキーペアの生成や管理
例:ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa

ssh-copy-id: SSH公開鍵をリモートサーバーにコピー
例:ssh-copy-id user@example.com

ssh-add: SSH秘密鍵をエージェントに追加
例:ssh-add ~/.ssh/id_rsa

ssh-agent: SSHエージェントを起動
例:ssh-agent bash

sftp: セキュアなFTP(File Transfer Protocol)セッションを開始
例:sftp user@example.com

sshfs: リモートファイルシステムをマウントします。
例:sshfs user@example.com:/path/to/remote/folder /path/to/local/folder

ネットワークエンジニアを目指したい方は

TCPをはじめとして、ネットワークの基礎を1から学びたい方はこちらの書籍を購入してがっつり学びましょう!

さくっと手軽に読める内容ではないのですが、ネットワークエンジニア全員が必ず読破している本と言っても過言ではありません。是非この機会にチャレンジしてみてみましょう。

blank
インターネットのプロトコルTCP/IP入門書の決定版!

ITを1から学びなおしたい方は

システムエンジニアを目指す方や、IT知識を1から身につけたい方は以下のページをご覧ください。

正直どこから学び始めればよいかわからない。どのように勉強していけば、エンジニアとしてのスキルが磨けるか?が分からない・・・という方は必見です。

システムエンジニア向けに「できるエンジニア」になる方法を1から解説しておりますので、是非ご覧ください。

無料で読めるようにしてあります。累計12万人に参考にしていただきました!

タイトルとURLをコピーしました