私のキーは~/.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つのオプションは、既存のリポジトリの名前を変更または削除してから、別の方法を使用してそれを「再複製」することです。したがって、現在のリポジトリをmv
ingまたはrm -r
ingした後、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 = true
SSHに追加
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>