概要
SSH(Secure Shell)とは、離れた場所にあるコンピュータ(サーバー)に、ネットワークを通じて安全に「入る」ための仕組みです。
サーバーとは、データを預かったりWebサイトを動かしたりするいつでも動いているコンピュータです。 そのサーバーが会社の奥の機械室や、遠くのデータセンターにあるとき、毎回その場所まで行ってキーボードをつなぐのは大変ですよね。
SSHを使うと、自分の席のパソコンから、ネットワーク越しにサーバーに入ることができます。そして、やり取りする内容は暗号化(読まれないようにすること)されるので、途中で誰かに盗み見されにくい、安全な仕組みです。
SSH = 遠くのコンピュータに、安全にログインするための仕組み
SSHでサーバーに入るとは?
会社のサーバーにつなぐとは、自分の席のパソコンから、遠くにあるサーバーに「入る」ことです。
SSHが使われる場面で最も多いのは、自分の席のパソコンから、遠くにある会社のサーバーに入るときです。
このデモでは、SSHでサーバーに入るまでの流れを、4つのステップに分けて確認します。
SSHでサーバーに入る流れ
― 手元のPCからログイン完了まで ―
ボタンを押して、手元のPCからサーバーに「入る」までの4ステップを確認できます。
実際のSSH接続方法
会社では、ターミナルの ssh コマンドまたはGUIツールを使って接続することが多いです。
コマンドで接続する場合
ssh ユーザー名@サーバーのIPアドレス
例)ssh tanaka@192.168.1.100サーバーへの入り方:2つの方法
パスワード認証
- 接続するたびにパスワードを入力
- わかりやすいが、漏れると危険
鍵認証(よく使われる)
- 自分のPCに「鍵」を持っておく
- サーバーにペアとなる情報を登録
- パスワードより安全
SSHで安全が守られる仕組み
ネットワーク上では、データはさまざまな機器を経由して送られます。 SSHが安全と言われる理由は、クライアントとサーバーの間の通信がすべて暗号化されるからです。 途中で誰かに見られても、中身を読むことができません。
- パスワード
- 入力したコマンド
などが途中で盗み見される可能性があります。
sshdでMy PCを遠隔操作
ここまでは、「手元のPCから、会社のサーバーに入る」使い方を見てきました。
SSHには、もう一つの使い方があります。それは、自分のPCを「入り先」にする使い方です。
別のPCから自分のPCに入る流れ(概要)
このデモでは、自分のPCが「入られる側」になる流れだけを確認します。
- 自分のPCを「入り先」にする(sshd を動かして待つ)
- 別のPCから、つなぎに来る(ssh で接続する)
- 自分のPCに入れる(遠隔操作できる状態)
別のPCから自分のPCに入る流れ
(誰かが「SSH で入ってくる」を待つ)
sshd が22番の入口で待っているので、自分のPCが“入り先”になります。このとき自分のPCが“サーバー”の役になります。
別のPCが“クライアント”になり、自分のPCの中に入れることができます
ssh は「行く側」、sshd は「待つ側」のプログラムです。
参考:sshdを動かすには
かんたんにいうと、パソコンの種類によってやり方が異なります。
- Windows:OpenSSH サーバーを有効にする
- Mac:システム設定の「共有」で「リモートログイン」をオン
- Linux:openssh-server をインストール
最初から sshd が入っているパソコンもあれば、あとから有効にするパソコンもあります。
このページで使う用語
- クライアント
- SSHで「つなぎに行く側」(手元のパソコンなど)
- サーバー
- SSHで「接続される側」(入り先のコンピュータ)
- sshd
- 接続される側で動く、SSHの受付プログラム
- ターミナル
- コマンドを文字で入力する画面(CLI)
- sshコマンド
- SSHで接続するときに使うコマンド(例:
ssh user@host) - ポート22
- SSHがよく使う通信の入口番号
関連用語
- サーバー
- SSHで「入る先」になるコンピュータ
→ サーバーの用語ページへ - IPアドレスとポート番号
- サーバーの住所と入口番号
→ IPアドレス/ポート番号の解説へ - SSL/TLS
- Web通信を暗号化して安全にする仕組み
→ SSL/TLSの用語ページへ - CLI / GUI
- 文字で操作する画面と、ボタンで操作する画面
→ CLI・GUIの違いへ
