MENU

SSH — リモートシェルとファイル転送のセキュア標準

SSH アイキャッチ
SSH

SSH(Secure Shell)は1995年、フィンランドのタトゥ・ウルネンが、リモートログイン時に平文でパスワードを流していたTelnet/rloginを置き換える目的で開発した暗号化プロトコルです。現在はSSH-2(RFC 4250〜4254、2006年)が標準で、Linuxサーバ運用・Gitリモート操作・トンネリング・ファイル転送等、Webサーバを管理するエンジニアが毎日使う基本技術になっています。

目次

この記事の目次

  1. SSHの基本動作
  2. 公開鍵認証の仕組み
  3. SSHの便利な周辺機能
  4. SSHのセキュリティ運用
  5. まとめ

SSHの基本動作

SSHの基本動作

SSH接続はクライアントがサーバへTCP(既定22番ポート)でつなぐところから始まります。両者の暗号アルゴリズムをネゴシエートし、Diffie-Hellman等で共通鍵を生成。

次にサーバのホスト鍵で「相手が正しいサーバか」を検証(初回は ~/.ssh/known_hosts に記録)し、最後にユーザー認証(パスワードか公開鍵)で本人確認。これら全てを暗号化された経路上で行うことで、盗聴・改ざん・なりすましを防ぎます。

公開鍵認証の仕組み

公開鍵認証の仕組み

SSHのもっとも安全で標準的な認証方法は公開鍵認証です。クライアント側で ssh-keygen でキーペアを生成し、公開鍵(.pub)をサーバの ~/.ssh/authorized_keys に登録。以降は秘密鍵による署名でログインできます。

GitHubやAWSもこの方式に乗っており、git@github.com でクローンする時にも裏でSSH公開鍵認証が動いています。鍵タイプは ed25519 が現代の推奨で、RSAなら4096ビット以上、ECDSAは使わないのが2020年代の常識です。

SSHの便利な周辺機能

SSHの便利な周辺機能

SSHは「シェルログイン」だけでなく、scp/sftpでのファイル転送、ポートフォワード(トンネル)、多段SSH(踏み台経由)など、ネットワーク運用の多用途ナイフです。-L でローカル→リモートのトンネル、-R でリモート→ローカルのトンネルが張れます。

~/.ssh/config にホスト別の接続設定(ユーザー、鍵、Proxyなど)を書いておくと、ssh myhost だけで複雑な接続が再現できます。本番サーバへの接続が頻繁な現場では、この設定の質が作業効率を大きく左右します。

SSHのセキュリティ運用

SSHのセキュリティ運用

クラウドのVMをHTTP公開すると、22番ポートには即座に総当たり攻撃が来ます。推奨は「パスワード認証を完全に無効化」「rootログイン禁止」「Fail2Ban等で連続失敗を遮断」「秘密鍵には必ずパスフレーズ」が4点セット。

近年はSSHすら使わず、AWS Systems Manager Session Manager、Google IAP、Tailscale SSHなど「クラウド側の認証を経由したアクセス」が増えてきました。「22番ポートをインターネットに開けない」運用が新しい標準になりつつあります。

まとめ

SSHはLinuxサーバを触る人にとって日常の道具ですが、奥は深い世界です。鍵管理・接続設定・トンネルを使いこなせるようになると、運用・開発の生産性が大きく上がります。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次