2026年6月18日

2026年6月18日

GitHubにSSHで接続する方法(サーバー上での設定)

はじめに

SSH(Secure Shell)は、リモートサーバーへの安全な接続を確立するための標準的なプロトコルです。GitHubと連携させる際には、Gitクライアントを通じてSSHを使用することが一般的で、これによりパスワードの入力が不要となり、セキュリティも向上します。

この記事では、Linuxサーバー上でGitHubリポジトリへのSSH接続を設定する手順について詳しく説明します。また、各種注意点や問題解決のためのヒントも提供します。

症状・背景

  • Git操作が頻繁に行われる環境

リポジトリのプルやプッシュが日常的に行われている場合、SSH接続はパスワード入力を省略するだけでなく、セキュリティ上も有益です。

  • 複数のGitHubアカウントを使用している

多くのプロジェクトを管理している開発者は、異なるGitHubアカウントを持つことがあり、それぞれに異なるSSHキーが必要になることがあります。

  • サーバー間での自動デプロイを行う必要がある

CI/CDパイプラインにおいては、安全かつ迅速なデプロイのためにSSH接続が重要です。

  • セキュリティ上の理由からHTTPのGitアクセスを避ける

HTTPまたはHTTPS経由でのGit操作では、認証情報が明文で送信されるため、より安全な通信手段としてSSHを利用することが推奨されます。

手順・設定方法

ステップ1: SSH鍵ペアの生成

# システム上の既存のSSH公開鍵と秘密鍵を確認します。存在しない場合、新たに作成します。
ls -al ~/.ssh/id_rsa.pub
if [ ! -f ~/.ssh/id_rsa.pub ]; then
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # メールアドレスは任意です。
fi

# キーのパスフレーズを設定するかどうか選択します。セキュリティ上の理由で、ここでは省略します。

ステップ2: GitHubに公開鍵を登録

# 生成した公開鍵をGitHubアカウントに追加します。
cat ~/.ssh/id_rsa.pub | pbcopy # Macの場合(Linuxではクリップボードコマンドが異なる可能性があります)

ステップ3: GitHubリポジトリへのSSH接続

# GitのリモートURLをSSH形式に変更します。通常、HTTP形式で初期設定されているため、以下のコマンドを使用します。
git remote set-url origin git@github.com:<username>/<repository>.git # usernameとrepositoryは適切な値に置き換えます。

# 既存のリポジトリをクローンする場合
git clone git@github.com:<username>/<repository>.git # usernameとrepositoryは適切な値に置き換えます。

ステップ4: SSH接続のトラブルシューティング

# 接続エラーが発生した場合、SSH鍵ペアや署名アルゴリズムを確認します。
ssh -T git@github.com # このコマンドは認証情報を要求せず、SSH接続の問題を調査するのに役立ちます。

# 必要に応じて、GitHubの設定からSSH鍵を削除し、再度追加することもあります。

注意事項

  • パスフレーズの管理: SSHキーパスフレーズを使用しない場合でも、適切なアクセス制御とセキュリティポリシーを遵守することが重要です。
  • 公開鍵の保守: 公開鍵はGitHubアカウントに追加された後も定期的に確認し、不要になったものは削除してください。
  • セキュリティ上の注意: SSH接続時に署名アルゴリズムが古いものである場合、セキュリティリスクが高まります。新しいアルゴリズムを使用することを検討しましょう。
  • パフォーマンス/運用上の注意: 多くのプロジェクトを管理する場合には、各プロジェクトごとに異なるSSHキーを使用すると混乱を招きます。プロジェクト間で共有できる共通のSSHキーを利用することも考慮してください。

まとめ

1. SSH鍵ペアの生成: システム上で必要であれば新規に作成します。

2. 公開鍵の登録: GitHubアカウントに新しい公開鍵を追加します。

3. リモートURLの変更: GitクライアントでHTTP形式からSSH形式への変更を行います。

4. 接続エラーの診断: SSH接続が失敗した場合、適切なトラブルシューティング手順を実行します。

5. 保守と安全対策: 公開鍵の管理やセキュリティポリシーの遵守など、継続的なメンテナンスが必要です。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ