Secure Shell(SSH)の基礎
鍵ベース認証や基本的なSSHクライアント設定を含め、リモートのLinuxマシンに安全に接続する方法を学びます。
「Secure Shell(SSH)の基礎」はCoddyKit上の無料Linux Command Line & Bash Scripting Masteryレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Command Line & Bash Scripting Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。
Secure Shell(SSH)とは
Secure Shell(SSH)の基礎へようこそ。SSHは、安全でないネットワークを介してリモートコンピューターに安全に接続できる、強力なネットワークプロトコルです。
コマンドやデータを通す安全なトンネルだと考えてください。Linuxサーバーやクラウドインスタンスの管理、さらには自分の開発環境へのリモートアクセスにも欠かせません。
SSHを使う理由: セキュリティを最優先に
SSHが登場する前は、リモート接続が暗号化されていないことが多く、誰でもパスワードやデータを盗み見ることができました。SSHは強力な暗号化によってこの問題を解決します。
- 機密性: データを暗号化し、第三者から見えないようにします。
- 完全性: 転送中にデータが改ざんされていないことを保証します。
- 認証: クライアントとサーバーの双方の身元を確認します。
SSHはリモート管理の業界標準です。
SSH: クライアント・サーバーモデル
SSHはクライアント・サーバーモデルで動作します。利用者はローカルマシン上でSSHクライアントを実行します。このクライアントが、リモートマシン上で動作するSSHサーバー(`sshd`と呼ばれることが多い)に接続します。
接続を開始すると、データを交換する前にクライアントとサーバーが「ハンドシェイク」を行い、安全で暗号化された通信路を確立します。
SSHの基本接続コマンド
SSHでリモートサーバーに接続する最も基本的な方法は、sshコマンドにユーザー名とホスト(IPアドレスまたはホスト名)を続けて指定することです。
形式はssh username@hostname_or_IPです。たとえば、coddyユーザーとして192.168.1.100のサーバーに接続する場合は次のようにします。
ssh coddy@192.168.1.100初回接続とフィンガープリント
新しいサーバーに初めて接続するとき、SSHはサーバーの「フィンガープリント」の確認を求めます。これは「中間者攻撃」を防ぐのに役立つ一意の識別情報です。
可能であれば、必ずフィンガープリントを確認してください(たとえば、サーバー管理者に尋ねます)。一致していれば、yesと入力してサーバーを~/.ssh/known_hostsファイルに追加します。
SSHポートとカスタムポート
SSHはデフォルトでTCPポート22を使用します。ただし、セキュリティ上の理由から、サーバー管理者がSSHのリッスン先を標準とは異なるポートに設定することがあります。
リモートサーバーがカスタムポート(例: ポート2222)を使用している場合は、-pオプションで指定できます。
ssh -p 2222 coddy@myremoteserver.com鍵ベース認証の概要
パスワード認証も機能しますが、SSH鍵ベース認証のほうがはるかに安全で便利です。これは暗号鍵のペアを使用します。
- 公開鍵: リモートサーバーに保存します。
- 秘密鍵: ローカルマシンに安全に保存します。
接続時、サーバーはクライアントに認証を求めます。クライアントは秘密鍵を使って身元を証明するため、秘密鍵そのものがネットワーク上に送信されることはありません。
SSH鍵ペアを生成する
ssh-keygenコマンドを使ってSSH鍵ペアを生成できます。鍵の保存場所(デフォルトは~/.ssh/id_rsa)と、任意のパスフレーズの入力を求められます。
パスフレーズを設定すると、秘密鍵のセキュリティをさらに高められます。強くおすすめします。
ssh-keygen -t rsa -b 4096公開鍵をコピーする
鍵ペアを作成したら、公開鍵をリモートサーバーにコピーする必要があります。最も簡単な方法はssh-copy-idを使うことです。このコマンドは最初はパスワードを使ってリモートサーバーにログインし、公開鍵を~/.ssh/authorized_keysファイルに追加します。
これで、パスワードの代わりに鍵を使って接続できるようになります。
ssh-copy-id coddy@myremoteserver.comクイックチェック: SSHの基礎
SSHについて、次のうち正しい説明はどれでしょうか。
復習: SSHの基礎
このレッスンでは、Secure Shell(SSH)の基礎を学びました。
- SSHは、安全に暗号化されたリモートアクセスを提供します。
- SSHはクライアント・サーバーモデルで動作し、通常はポート22を使用します。
ssh user@hostで接続できます。ssh-keygenで生成し、ssh-copy-idでコピーする公開鍵・秘密鍵ペアによる鍵ベース認証は、パスワードより優れたセキュリティを提供します。
次は、さらに強力なネットワークコマンドとファイル転送ツールについて学びます。
よくある質問
「Secure Shell(SSH)の基礎」レッスンは無料ですか?
はい。「Secure Shell(SSH)の基礎」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Command Line & Bash Scripting Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。
「Secure Shell(SSH)の基礎」で何を学びますか?
鍵ベース認証や基本的なSSHクライアント設定を含め、リモートのLinuxマシンに安全に接続する方法を学びます。 ブラウザで直接実行するハンズオンコードでLinux Command Line & Bash Scripting Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Linux Command Line & Bash Scripting Masteryを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLinux Command Line & Bash Scripting Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Secure Shell(SSH)の基礎」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLinux Command Line & Bash Scripting Masteryレッスンでコードを書いて実行できますか?
はい。すべてのLinux Command Line & Bash Scripting Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 基本的なネットワークユーティリティ(ping、ip、netstat)
- Secure Shell(SSH)の基礎
- ファイル転送のためのSCPとRsync
- SSH鍵認証と設定ファイル