私は自分のRaspberry PiのGitHubにプロジェクトのクローンを作成し、新しいブランチを作成して、すべてをリポジトリにプッシュしました。このために私は次のコマンドが必要でした:
git clone https://www.github.com/heinpauwelyn/my_repo
git checkout -b raspberry
git Push Origin raspberry
私が持っている問題は、GitHub.comにブランチをプッシュできないことです。ユーザー名とパスワードを入力する必要がありますが、2FAを使用できません。これはGitまたはGitHubのバグですか?認証キーを取得して入力する方法はありますか?
GitHubで2FAを有効にしません。
2FAでは、コマンドラインでHTTPS URLを使用してGitHubに認証するときにパスワードとして使用する個人用アクセストークンを作成する必要があります: https://help.github.com/articles/which-remote-url-should -i-use /#when-2fa-is-enabled
または、ssh https://help.github.com/articles/which-remote-url-should-i-use/#cloning-with-ssh-urls でクローンを作成することもできます(これも役立つ場合があります) : https://help.github.com/articles/generating-an-ssh-key/ )
アクセストークンを生成し、パスワードの代わりにアクセストークンを使用する必要があります。例えば:
$ git clone https://github.com/username/repo.git
Username: your_username
Password: your_token
ドキュメント: https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line
2FAでは、コードをプッシュするときに個人用アクセストークンを生成する必要があります。その個人トークンは、コードをGithubにプッシュするときにパスワードとして使用されます。 https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line から個人用アクセストークンを作成する方法を確認できます。 。 http urlでリポジトリを複製したときに使用されます。 すべてのリポジトリで機能します。
SSHを介してクローンを作成した場合は、2F認証を有効にした後、通常の動作に変更を加えることなく、変更を非常に簡単にプッシュできます。このために、パスワードとしてSSHキーパスフレーズを使用します。まず、リポジトリに対してSSHキーを作成する必要があります。 https://help.github.com/en/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent からSSHキーを生成できますこのSSHキーが生成された特定のレポジトリに対してのみ、単一のリポジトリのみが機能します。
GitHubアカウントに2FAを追加した後、ローカルサーバーからのプッシュ、プル、クローン作成、またはフェッチ操作に、リポジトリのHTTPS URLまたはのSSH URLを使用できます。違いは次のとおりです。
HTTPS URLの使用中:プッシュ、プル、フェッチ、またはクローン操作のために、パーソナルを生成する必要がありますGitHubアカウントからアクセストークンを作成すると、パスワードの入力を求められたときに、それがパスワードとして使用されます。トークンを安全に保つ必要があります。
SSH URLを使用している間:リポジトリのSSH URLを介してプッシュ、プル、フェッチ、またはクローンを作成するには、秘密鍵と公開ペアを設定する必要がありますあなたのアカウントのために。これには少し時間がかかりますが、秘密鍵と公開鍵の設定が完了すると、GitHubがIDを認識できるようになるため、ユーザー名やパスワードの入力を求められることはありません。
秘密鍵と公開鍵のペアを作成するには、次をお読みください: SSHでGitHubに接続
HTTPS URLとSSH URLの使用の違い:
HTTPSはファイアウォールやネットワークによってブロックされていませんが、SSHがブロックされて使用できない場合がありますが、まれにしか発生しません。 HTTPSを使用している間、ユーザー名とパスワード(個人のアクセストークン)を尋ねられますが、credential.helper
を使用してキャッシュできますが、プレーンテキストとして保存されます。
SSHの場合、秘密鍵のパスフレーズを生成できます パスワードなしで生成されたOpenSSH秘密鍵にパスワードを追加するにはどうすればよいですか?
これで秘密鍵は保護されますが、Push、Pull、Clone、Fetchを実行するたびに、パスフレーズが毎回要求されます。 SSHエージェントを使用できないようにするには、 SSHキー-パスワードとパスフレーズの入力を求めます
Https経由でクローンを作成し、それを引き続き使用したい場合は、何らかの理由で.git/config
を編集して、 https://help.github.com/en/に従って生成された個人アクセストークンを含めることができます。 github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line 。
.git/config
エントリの例:
[remote "<YOUR-REMOTE-NAME>"]
url = https://<YOUR-USERNAME>:<YOUR-TOKEN>@github.com/<etc your repo url>
これはあなたのマシン上のこのプレーンテキストファイルにあなたのトークンキーを置くことです、それは悪いことですが、物事を進めるために迅速なハックが必要な場合、それは機能します。
乾杯!