githubがいつもユーザー名/パスワードを要求するのを止める方法は?

githubがいつもユーザー名/パスワードを要求するのを止める方法は?

私のキーは~/.ssh/別のコンピュータにあり、関連するリポジトリからプッシュして解放できます。
あるコンピュータでは常に私のgithubのユーザー名/パスワードを入力する必要がありますが、別のコンピュータでは入力しないでください。

これを防ぎ、SSHキーを代わりに使用するにはどうすればよいですか?

答え1

最も簡単な方法は、~/.netrc次の内容でファイルを作成することです。

machine github.com
login YOUR_GITHUB_USERNAME
password YOUR_GITHUB_PASSWORD

(次のように: https://gist.github.com/ahoward/2885020)

次のように入力して、誰もあなたのパスワードを読むことができないように、このファイルの権限をオフにすることもできます。

chmod 600 ~/.netrc

答え2

これは、認証プロトコル方式をhttpsからsshに変更することで変更できます。

1つのオプションは、既存のリポジトリの名前を変更または削除してから、別の方法を使用してそれを「再複製」することです。したがって、現在のリポジトリをmvingまたはrm -ringした後、cloneコマンドは次のようになります。

git clone [email protected]:user_name/repo_name.git

次のコマンドを使用すると、2つの方法の違いを確認できますgit config -l

httpsの場合:

...
remote.origin.url=https://github.com/user_name/repo_name.git
...

SSHの場合

...
[email protected]:user_name/repo_name.git
branch.master.rebase=true  # This was also created in the ssh method

...

.git/config各リポジトリのファイルの違いを確認できます。

下記の「url」の変更をご覧ください。さらに、rebase = trueSSHに追加

http

[core]
  repositoryformatversion = 0 
  filemode = true
  bare = false
  logallrefupdates = true
[remote "origin"]
  url = https://github.com/user_name/repo_name.git
  fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
  remote = origin
  merge = refs/heads/master

SSH

[core]
  repositoryformatversion = 0 
  filemode = true
  bare = false
  logallrefupdates = true
[remote "origin"]
  url = [email protected]:user_name/repo_name.git
  fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
  remote = origin
  merge = refs/heads/master
  rebase = true

したがって、リポジトリ全体を「再複製」せずに認証方法のみを変更したい場合は、プロジェクトを編集して変更するだけです.git/config

  url = [email protected]_name/repo_name.git

到着

  url = https://github.com/user_name/repo_name.git

愚かな

rebase = true

下の「[branch "master"]」セクションで

答え3

githubに関しては、すでにsshを使用しているかどうかを指定していません。おそらく他のコンピュータでは、githubの資格情報があなたの知らないキャッシュのどこかに保存されています(これは私がmacos / unixからLinuxシステムに切り替えた場合でした)。

SSHタイプを使用してリモコンを設定します。次のコマンドを使用してURLタイプを確認できます。

git remote -v

httpsの代わりにsshを使用するようにリモートリポジトリのURLを変更できます。

HTML URLの代わりに https://github.com/username/repo_name

.gitタイプのURLを使用してください。 [Eメール保護]:ユーザー名/repo_name.git

以下を使って変更してください。

git remote set-url <your_branch_name> <url>

関連情報