TECH I.S.

GitセキュリティSSH


プラットフォームを変更します:

Shift focus to GitHubGitHubShift focus to BitbucketBitbucketShift focus to GitLabGitLab

Gitのセキュリティ



ここまでは、リモートリポジトリへの接続にHTTPSを使用してきました。

通常はHTTPSで問題なく動作しますが、安全でないネットワークを使用する場合はSSHを使用する必要があります。また、プロジェクトによってはSSHの使用が必要になる場合があります。


SSHとは


SSHは、ネットワーク管理、リモートファイル転送、およびリモートシステムアクセスに使用されるセキュアシェルネットワークプロトコルです。

SSHは、SSHキーのペアを使用して、認証および暗号化された安全なネットワークプロトコルを確立します。これにより、安全でないオープンネットワーク上で安全なリモート通信が可能になります。

SSH キーは、安全な「ハンドシェイク」を開始するために使用されます。キーのセットを生成するときは、「公開」キーと「秘密」キーを生成します。

「公開」キーは、リモート相手と共有するキーです。これを錠前に例えると分かりやすいでしょう。

「秘密」キーは、安全な場所に自分用に保管するキーです。これが錠前の鍵だと考えてください。

SSHキーはセキュリティアルゴリズムを通じて生成されます。すべて非常に複雑ですが、素数と大きな乱数を使用して公開鍵と秘密鍵を作成します。

秘密鍵を知っていれば公開鍵を計算できますが、公開鍵から秘密鍵を計算することはできない仕組みになっているのです。


SSHキーペアの生成


Linux、Appleのコマンド ライン、およびWindowsのGit Bashでは、SSHキーを生成できます。

段階的に見ていきましょう。

まず、電子メールをラベルとして使用して、新しいキーを作成します。

ssh-keygen -t rsa -b 4096 -C "test@techis.jp"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa):
Created directory '/Users/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/user/.ssh/id_rsa
Your public key has been saved in /Users/user/.ssh/id_rsa.pub
The key fingerprint is:
SHA256: test@techis.jp
The key's randomart image is:
+---[RSA 4096]----+
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
+----[SHA256]-----+
この作成を通じて、次のプロンプトが表示されます。
Enter file in which to save the key (/c/Users/user/.ssh/id_rsa):
ファイルの場所を選択するか、「Enter」を押してデフォルトのファイルの場所を使用します。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
安全なパスフレーズを入力すると、追加のセキュリティ層が作成されます。コンピュータにアクセスした人がパスフレーズなしでそのキーを使用できないようにします。ただし、SSHキーを使用する場合は常にパスフレーズを指定する必要があります。

ここで、この SSHキーペアをSSHエージェントに追加します(上記のファイルの場所を使用)。

ssh-add /Users/user/.ssh/id_rsa
Enter passphrase for /Users/user/.ssh/id_rsa:
Identity added: /Users/user/.ssh/id_rsa (test@techis.jp)
パスフレーズを追加した場合は、パスフレーズを入力するように求められます。

これで、SSHキーペアを使用する準備が整いました。

プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細