0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Goで学ぶコンピューターサイエンスAdvent Calendar 2024

Day 20

【Goで学ぶコンピューターサイエンス】SSH(セキュアシェル)

Posted at

SSH(セキュアシェル)

セキュアシェル(SSH)は、リモートサーバーに安全にアクセスするためのプロトコルです。SSHは、暗号化を利用して通信を保護し、リモートのサーバーやデバイスにログインしたり、コマンドを実行したりするために広く使用されています。また、ファイル転送やポート転送といったさまざまな機能も提供します。

SSHの特徴

セキュアな通信

  • SSHは通信内容を暗号化するため、パスワードや送受信されるデータが盗聴されるリスクを低減します

認証

  • ユーザー認証には、パスワード認証や公開鍵認証が利用されます
  • 公開鍵認証を使用することで、より強力なセキュリティを実現できます

多機能

  • リモートシェルアクセス(ターミナル接続)
  • セキュアなファイル転送(SCPやSFTP)
  • トンネリング(ポート転送)

SSHの仕組み

クライアントとサーバー

  • SSHはクライアントとサーバー間で動作します
  • クライアント:リモートに接続するユーザーの端末
  • サーバー:SSHサービスを提供するリモートデバイス

暗号化

  • SSHは公開鍵暗号(RSA、ECDSAなど)を用いて認証を行い、その後に共通鍵暗号(AESなど)を使用してデータを暗号化します

認証

  • パスワード認証
    • ユーザー名とパスワードで認証を行います
  • 公開鍵認証
    • クライアント側に秘密鍵を保存し、サーバー側に公開鍵を配置する方式。パスワードを使用せず、より安全

SSHの利用方法

SSH接続の基本コマンド

ssh username@remote_server
  • username:リモートサーバーのユーザー名
  • remote_server:リモートサーバーのIPアドレスやホスト名

公開鍵認証の設定

1. 秘密鍵と公開鍵の生成

ローカルマシンでSSH鍵ペアを作成します。
これにより、秘密鍵と公開鍵が生成されます。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

2. 公開鍵をサーバーにコピー

公開鍵をサーバーに転送します。

ssh-copy-id username@remote_server

3. 公開鍵認証で接続

鍵ペアを使ってリモートサーバーにログインできます。

ssh username@remote_server

SSHの応用

  • ローカルポート転送
    ローカルマシンのポートをリモートに転送
    例: 踏み台サーバーから内部ネットワークにアクセスする際などに使用

    ssh -L 8080:localhost:80 username@remote_server
    

お知らせ

今回はGoサンプルコードはありません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?