こんにちは。よっしーです。
今日は、GitHubにssh接続する方法を説明します。
先日、GitHubについて説明しましたが、GitHubにSSH接続する方法について説明をしていなかったため、gitコマンドの一部が実行できなかった可能性があると思いました。
なので、今日は補足として、GitHubへのSSH接続について説明します。
SSHとは
SSHとは、Secure Shellの略で、安全な通信を行うためのプロトコルの一つです。
SSHを使用することで、ネットワークを介して別のコンピュータに安全にアクセスすることができます。
具体的には、パスワードやデータなどの情報を暗号化して送信し、盗聴や改ざんなどの攻撃から保護されます。
SSHは、主にリモートでのコンピュータの管理やファイル転送、トンネリングなどに使用されます。
また、SSHには、パスワード認証だけでなく、公開鍵認証にも対応しており、より高いセキュリティを提供します。
SSHは、LinuxやUnixなどのサーバーにリモートでアクセスするために広く使用されています。
SSHクライアントとSSHサーバーの両方が必要で、SSHクライアントを使用してSSHサーバーに接続し、操作を行います。
GitHubでSSH接続するメリット
GitHubでSSH接続を使用する主な理由は、セキュリティと便利さです。
SSH接続を使用することで、パスワード認証に比べてより高いセキュリティを提供できます。
SSHキーを生成してGitHubに登録することで、GitHubにアクセスする際にパスワードを入力する必要がなくなります。
また、SSHキーはパスワードよりも長く、ランダムに生成されるため、より安全性が高くなります。
つまり、SSH接続を使用することで、ユーザー名やパスワードなどの機密情報を暗号化し、不正アクセスを防止することができます。
GitHubでは、SSH接続を使用することで、リモートリポジトリへのアクセスがより簡単になります。
SSH接続を設定すると、毎回ユーザー名やパスワードを入力する必要がなくなり、自動的に認証されるため、作業効率が向上します。
また、SSH接続を使用することで、パブリックなリポジトリであっても、自分のプライベートキーを使ってセキュアにアクセスすることができます。
これにより、コミットやプッシュなどの操作を、安全に行うことができます。
そのため、SSH接続はGitHubの使用をよりセキュアかつ便利にするために推奨される方法です。
GitHubにSSH接続する方法
GitHubでSSH接続する方法は以下の手順で行います。
- SSHキーの生成
- 公開鍵の登録
- SSH接続のテスト
以上の手順で、GitHubにSSH接続することができます。
SSH接続を使用することで、より安全で便利なGitHubの利用が可能になります。
それでは、一つづつ作業を説明していきます。
SSHキーの生成
ローカルマシン上でSSHキーを生成します。
ターミナルを開いて、ssh-keygenコマンドを実行します。
ssh-keygen -t ed25519 -C "自身のメールアドレス"
このコマンドは、SSHキーペアを生成するために必要な情報を求めます。
Enter file in which to save the key (/Users/username/.ssh/xxx):
ホームディレクトリの .ssh というディレクトリに xxx という名前の鍵を作成するかどうかを聞いていきますので、特に変更がなければ、エンターを押しましょう。
すでに、xxx というファイルが存在すると上書きされるので、注意しましょう。
もし、違う場所にxxxを作成したければ、ファイルパスを入力して、エンターを押しましょう。
Enter passphrase (empty for no passphrase):
パスフレーズの入力を求められますが、エンターを押しましょう。パスフレーズを入力してもよいですが、自分はなしで作成しています。
Enter same passphrase again:
上記と同じパスフレーズの入力を求められますので、同じパスフレーズを入力したら、エンターを押しましょう。パスフレーズなしの場合は、そのままエンターを押します。
これで指定の場所に鍵ファイルが作成されますので、確認しましょう。
ls -l /Users/username/.ssh/
xxx と xxx.pub の2つのファイルが作成できていることが確認できます。
xxx が秘密鍵で、xxx.pubが公開鍵になります。
なので、xxxの秘密鍵は自分以外に知られないようにしましょう。
公開鍵の登録
先程生成したSSHキーの公開鍵をGitHubに登録します。
GitHubのWebサイトにアクセスし、[Settings]→[SSH and GPG keys]の順にクリックします。
下記のサイトにアクセスすると目的のサイトに遷移できます。
[New SSH key]ボタンをクリックして、SSHキーのタイトルと公開鍵を貼り付けます。
SSH接続のテスト
SSH接続が正しく設定されているかどうかをテストします。
ターミナルで以下のコマンドを入力し、SSH接続を試みます。
$ ssh -T git@github.com
# 接続が成功した場合、GitHubからのメッセージが表示されます。
補足
複数のアカウントがある場合
上記の説明した方法では1アカウントしか接続できません。
ここでは、複数アカウントがあり、使い分けたい場合の説明をします。
仮に aaa と bbb というGitHubのアカウントを持っていたとします。
各アカウントの公開鍵、秘密鍵は作成済みで、GitHubに公開鍵を設定済みの状態だとします。
このとき ~/.ssh/config というファイルに下記の文字列を追加します。
# aaa 用のgithub.com のホスト名
Host aaa.github.com
HostName github.com
IdentityFile ~/.ssh/aaa.private # aaaの秘密鍵のパス
User git
# bbb 用のgithub.com のホスト名
Host bbb.github.com
HostName github.com
IdentityFile ~/.ssh/bbb.private # bbbの秘密鍵のパス
User git
そうすると、下記のコマンドでSSH接続が確認できます。
$ ssh -T git@aaa.github.com
# aaaのアカウントで接続が成功した場合、GitHubからのメッセージが表示されます。
$ ssh -T git@bbb.github.com
# bbbのアカウントで接続が成功した場合、GitHubからのメッセージが表示されます。
こうすることで、各アカウントのホスト名でGit操作(git clone)をすることができるようになります。
公式ガイド
下記の公式サイトでもSSH接続する方法の記載がありますので、参考にしてみてください。
おわりに
今日は、GitHubでSSH接続する方法について説明しました。
GitHubを利用するときは、大抵の現場で使用されている方法だと思いますので、是非試してみてください。
それでは、またあしたー
コメント