sudo
コマンドまたは管理者特権を Git で使用する必要がありますか?
sudo
コマンドや管理者特権 (管理者権限など) を Git で使用しないでください。
お客様が使用sudo
しなければならない_非常に良い理由_がある場合は、すべてのコマンドでそれを使用していることを確認してください。 sudo
を使用せずに SSH キーを生成して、sudo git push
のようなコマンドを使用しようとすると、生成したものと同じキーは使用されません。
正しいサーバーに接続していることを確認する
正しいドメインに接続していることを確かめるには、以下のコマンドを入力します:
ssh -vT git@github.com
ssh -vT git@github.com
次のように出力されます。
> OpenSSH_8.1p1, LibreSSL 2.7.3
> debug1: Reading configuration data /Users/YOU/.ssh/config
> debug1: Reading configuration data /etc/ssh/ssh_config
> debug1: /etc/ssh/ssh_config line 47: Applying options for *
> debug1: Connecting to github.com port 22.
SSH over HTTPS を使用するように設定をオーバーライドしない限り、接続はポート 22 で行う必要があります。
常に「git」ユーザを使用する
リモート URL 向けを含むすべての接続は、「git」ユーザとして行われる必要があります。 GitHub のユーザ名で接続しようとすると、失敗します:
$ ssh -T GITHUB-USERNAME@github.com
> Permission denied (publickey).
接続が失敗し、GitHub のユーザー名でリモート URL を使用している場合は、"git" ユーザーを使用するようリモート URL を変更できます。
以下を入力して接続を確認します:
ssh -T git@github.com
ssh -T git@github.com
次のように出力されます。
> Hi USERNAME! You've successfully authenticated...
使用中のキーを持っていることを確認する
-
[ターミナル][ターミナル][Git Bash] を開きます。
-
プライベートキーを生成し SSH に読み込ませていることを確認します。
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566 $ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
GitHub Desktop をインストール済みの場合、これを使って SSH キーを扱わずにリポジトリをクローンできます。
-
Git Bash を使用している場合は、ssh-agent を有効にします。
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566
Git for Windows など別のターミナル プロンプトを使用している場合は、ssh-agent を有効にします。
# start the ssh-agent in the background $ eval $(ssh-agent -s) > Agent pid 59566
注: 上記の eval コマンドは、環境内で ssh-agent を手動で開始します。 ssh-agent が既にバックグラウンド システム サービスとして実行されている場合、これらのコマンドは失敗する可能性があります。 その場合は、お使いの環境に関連するドキュメントを確認してください。
-
プライベートキーを生成し SSH に読み込ませていることを確認します。
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
-
[ターミナル][ターミナル][Git Bash] を開きます。
-
プライベートキーを生成し SSH に読み込ませていることを確認します。
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
このコマンドは ssh-add
、数字と文字の長い文字列を出力 する必要があります 。 何も出力されない場合は、新しい SSH キーを生成し、それを GitHub に関連付ける必要があります。
Tip
ほとんどのシステムでは、既定の秘密キー (~/.ssh/id_rsa
と ~/.ssh/identity
) が SSH 認証エージェントに自動的に追加されます。 キーを生成するときにファイル名をオーバーライドしない限り、ssh-add path/to/key
を実行する必要はありません。
詳細を確認する
git@github.com
に接続してキーが使用されていることを確認することもできます。
ssh -vT git@github.com
ssh -vT git@github.com
次のような出力が表示されます。
> ...
> debug1: identity file /Users/YOU/.ssh/id_rsa type -1
> debug1: identity file /Users/YOU/.ssh/id_rsa-cert type -1
> debug1: identity file /Users/YOU/.ssh/id_dsa type -1
> debug1: identity file /Users/YOU/.ssh/id_dsa-cert type -1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Trying private key: /Users/YOU/.ssh/id_rsa
> debug1: Trying private key: /Users/YOU/.ssh/id_dsa
> debug1: No more authentication methods to try.
> Permission denied (publickey).
この例では、SSH でキーは見つかりませんでした。
- 「identity file」行の最後の「-1」は、SSH が使用するファイルを見つけられなかったことを示します。
- 「Trying private key」の行でもファイルが見つからなかったことが示されています。
ファイルが存在する場合、この出力のように、これらの行はそれぞれ「1」と「Offering public key」になります。
> ...
> debug1: identity file /Users/YOU/.ssh/id_rsa type 1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Offering RSA public key: /Users/YOU/.ssh/id_rsa
公開鍵がアカウントに添付されていることを確認する
公開鍵を GitHub に提供して、安全な接続を確立する必要があります。
-
ターミナルを開きます。
-
バックグラウンドで SSH エージェントを開始します。
$ eval "$(ssh-agent -s)" > Agent pid 59566
-
自分の公開鍵のフィンガープリントを見つけてメモします。
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
-
GitHub で、任意のページの右上隅にある自分のプロフィール写真をクリックしてから、 [設定] をクリックします。
-
サイドバーの [アクセス] セクションで、 [ SSH キーと GPG キー] をクリックします。
-
SSH キーのリストを、
ssh-add
コマンドの出力と比較します。
-
コマンドラインを開きます。
-
バックグラウンドで SSH エージェントを開始します。
$ ssh-agent -s > Agent pid 59566
-
自分の公開鍵のフィンガープリントを見つけてメモします。
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
-
GitHub で、任意のページの右上隅にある自分のプロフィール写真をクリックしてから、 [設定] をクリックします。
-
サイドバーの [アクセス] セクションで、 [ SSH キーと GPG キー] をクリックします。
-
SSH キーのリストを、
ssh-add
コマンドの出力と比較します。
-
ターミナルを開きます。
-
バックグラウンドで SSH エージェントを開始します。
$ eval "$(ssh-agent -s)" > Agent pid 59566
-
自分の公開鍵のフィンガープリントを見つけてメモします。 OpenSSH 6.7 より前のバージョンを使用している場合:
$ ssh-add -l > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
OpenSSH 6.8 以降を使用している場合:
$ ssh-add -l -E md5 > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
-
GitHub で、任意のページの右上隅にある自分のプロフィール写真をクリックしてから、 [設定] をクリックします。
-
サイドバーの [アクセス] セクションで、 [ SSH キーと GPG キー] をクリックします。
-
SSH キーのリストを、
ssh-add
コマンドの出力と比較します。
GitHub で公開キーが見つからない場合は、GitHub に SSH キーを追加してコンピューターと関連付ける必要があります。
Warning
見慣れない SSH キーが GitHub で見つかった場合は、すぐにそれを削除し、GitHub サポート ポータル にサポートを依頼してください。 確認できない公開鍵は、潜在的なセキュリティ上の問題を示している可能性があります。 詳しくは、「SSH キーをレビューする」を参照してください。