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-userubuntu など)が間違っている場合に発生します。
  • WARNING: UNPROTECTED PRIVATE KEY FILE!: 手元の秘密鍵ファイルの権限が緩すぎる(誰でも読める状態になっている)と、SSHクライアントが接続を拒否します。chmod 600 id_rsa を実行して自分だけが読める状態にする必要があります。

まとめ

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

おすすめの高速レンタルサーバー PR

関連する用語 (linux)

全12件を見る

git stash コマンドの使い方(作業の一時避難)

コミットせずに今の作業を一時保存できる `git stash` コマンドの使い方(保存・復元・一覧・削除)を実務ベースで解説します。

詳しく読む

Cannot connect to the Docker daemon の原因と解決策

Dockerコマンド実行時に「Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?」と表示されるエラーの直し方を解説します。

詳しく読む

tailコマンドとは?リアルタイムなログ監視の実務テクニックを解説

ファイルの末尾を表示する「tail」コマンドについて、-fオプションを使ったリアルタイムなログ監視やエラー調査の基本を解説します。

詳しく読む

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

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

詳しく読む

chmodコマンドとは?Linuxの権限(パーミッション)変更を分かりやすく解説

Linuxの必須コマンド「chmod」について、777や644といった数字の意味から、実務でよく使う権限設定の定石まで徹底解説します。

詳しく読む

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

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

詳しく読む
☁️

開発者向け 高速VPSサーバー

初期費用 無料!

DockerやWebアプリ開発に最適な超高速VPS。月額ワンコインから利用可能。

VPSの料金プランを見る

PR: スポンサーリンク

法人・個人向けサポート 受付中

インフラ構築やトラブル対応で お困りではありませんか?

AWSの構築、社内ネットワーク(VPN/NW)の改善、その他原因不明のITトラブルまで、現役インフラエンジニアが直接サポートします。単発でのご相談や、毎月のスポット顧問契約も可能です。

Sponsored Link

実務で即戦力!ITサポート業務委託契約書テンプレート📝 フリーランスエンジニアや副業のシステム保守案件で、トラブルを劇的に防ぐプロ仕様の雛形。
バグ・要望を報告する