私のキーは~/.ssh/
にあり、他のコンピューターでは、問題のリポジトリからプッシュおよびプルできます。
なぜ1台のコンピューターでgithubのユーザー名/パスワードを常に入力する必要があるのに、他のコンピューターでは入力しないのですか?
これを回避し、代わりにsshキーを使用するために何を変更できますか?
これは、認証プロトコル方式をhttpsからsshに変更することで変更できます
1つのオプションは、既存のリポジトリの名前を変更または削除してから、別の方法で「再クローン」することです。したがって、現在のリポジトリをmv
ingまたはrm -r
ingした後、クローンコマンドは次のようになります。
git clone [email protected]:user_name/repo_name.git
git config -l
コマンドを使用すると、2つの方法の違いを確認できます。
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
ファイルの違いを確認できます。
rebase = true
を追加[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
[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"]
」セクション
最も簡単な方法は、~/.netrc
次の内容のファイル:
machine github.com
login YOUR_GITHUB_USERNAME
password YOUR_GITHUB_PASSWORD
(ここに示すとおり: https://Gist.github.com/ahoward/288502 )
次のように入力してパスワードが読み取られないように、このファイルのアクセス許可を閉じることもできます。
chmod 600 ~/.netrc
Githubとの接続ですでにsshを使用していることが確実かどうかは指定していません。他のマシンでは、githubクレデンシャルが知らないうちにキャッシュのどこかに保存されている可能性が高いです(macos/unixからlinuxシステムに切り替えたときのケースです)。
Sshタイプを使用してリモートを設定します。あなたはを使用してURLタイプを確認することができます
git remote -v
Httpsの代わりにsshが使用されるように、リモートリポジトリのURLを変更できます。
HTML URLの代わりにhttps://github.com/username/repo_name
.gitタイプのURLを使用[email protected]:username/repo_name.git
を使用して変更を行います
git remote set-url <your_branch_name> <url>