GitセキュリティSSH
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 passphrase (empty for no passphrase):
Enter same passphrase again:
ここで、この 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キーペアを使用する準備が整いました。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。