LINEで個別相談
linux 2026-03-05

sshコマンドとは?公開鍵認証の仕組みと安全なサーバー接続の実務

Linuxの遠隔操作に必須の「ssh」コマンドについて、公開鍵・秘密鍵を使った安全な接続方法(公開鍵認証)や実務でのポート指定などを解説します。

sshコマンドとは?

ssh(Secure SHell)は、ネットワークを経由して別のコンピューター(サーバー)に安全に遠隔ログインし、操作するためのコマンドおよびプロトコルです。 通信経路がすべて暗号化されているため、パスワードや送受信するデータが第三者に盗聴される危険性が極めて低くなっています。

以前の技術(Telnet)との違い

昔は telnet というコマンドが使われていましたが、これは通信が平文(暗号化されていない状態)で行われるため、ネットワーク上の誰かにパスワードを丸見えで盗まれるリスクがありました。現在、インターネット経由のサーバー操作にTelnetを使うことはセキュリティ上絶対にあり得ません。

どのような場面で使われるか

AWSのEC2インスタンスや、さくらのVPSなど、クラウド上のLinuxサーバーに自分のパソコン(MacのターミナルやWindowsのPowerShell)から接続して作業する際に必ず使用します。

実務での「公開鍵認証」の仕組み

より安全にSSH 접속を行うため、実務ではIDとパスワードの入力による認証(パスワード認証)は設定で無効化し、「公開鍵認証方式」を利用するのが一般的です。

  1. 鍵ペアの作成 (ssh-keygen): 手元のパソコンで、自分だけが持つ「秘密鍵 (id_rsa)」と、サーバーに渡す「公開鍵 (id_rsa.pub)」のペアを作成します。
  2. 公開鍵の登録: サーバー側の ~/.ssh/authorized_keys ファイルに公開鍵の文字列を貼り付けます。
  3. SSH接続: ssh -i /path/to/private_key user@host と打つと、手元の秘密鍵とサーバーの公開鍵が数学的に照合され、合致すればパスワードなしでログインできます。

実務でよく使うオプション

  • ポート番号の指定 (-p): ssh -p 10022 user@192.168.1.10 セキュリティ対策として、デフォルトの「22番ポート」から別の番号に変更されているサーバーへ接続する際に使用します。
  • 秘密鍵ファイルの指定 (-i): ssh -i ~/.ssh/my_aws_key.pem ec2-user@aws-ip

実務上の注意点

秘密鍵(id_rsa や .pem ファイル)の管理は厳重に行う必要があります。「絶対に他人に渡さない」「GitHubの公開リポジトリに誤ってプッシュしない」ことを徹底してください。

よくあるエラーやトラブルシュート

  • Permission denied (publickey): サーバー側に公開鍵が正しく登録されていないか、ログインしようとしているユーザー名(ec2-user や ubuntu など)が間違っている場合に発生します。
  • WARNING: UNPROTECTED PRIVATE KEY FILE!: 手元の秘密鍵ファイルの権限が緩すぎる(誰でも読める状態になっている)と、SSHクライアントが接続を拒否します。chmod 600 id_rsa を実行して自分だけが読める状態にする必要があります。

まとめ

sshはインフラエンジニアの「玄関の鍵」です。単なる接続だけでなく、公開鍵暗号方式の仕組みやファイルのパーミッション(chmod)の知識が複合的に求められるため、最初の大きな学習の壁でもあります。

関連する用語 (linux)

全12件を見る

curlコマンドとは?Web APIのテストやHTTP・JSON通信の実践例

URLを叩いて様々なリクエストを送信できる「curl」コマンドについて、REST APIのテスト(GET/POST)やヘッダー確認などの実務での使い方を解説。

詳しく読む

Gitの Detached HEAD の意味と直し方

ブランチ名ではなく特定のコミットIDを直接チェックアウトした状態「Detached HEAD」から、安全に元のブランチに戻る方法を解説します。

詳しく読む

Gitのコンフリクト(競合)解消のやり方

複数人で同じファイルを編集して `git merge` や `git pull` した際に発生する「コンフリクト」の直し方と安全な運用方法を解説します。

詳しく読む

error: failed to push some refs to の原因

`git push` した時に「リモート側に自分が持っていない変更がある」として拒否された場合の原因と、`git pull` や `git push -f` の判断基準を解説します。

詳しく読む

git rebase と git merge の違い・使い分け

コミット履歴を綺麗に保つための `git rebase` の仕組みと、`merge` との決定的な違い、実務での使い分けについて図解します。

詳しく読む

pingコマンドとは?ネットワーク疎通確認の仕組みと実務での活用

ネットワークの基本コマンド「ping」について、サーバー間の通信が届いているかを確認する仕組みとトラブルシューティングの初動対応を解説。

詳しく読む

Sponsored Link

バグ・要望を報告する