0

GitHub アカウントの SSH キーを生成したいと考えていました。このガイドに従って、私は走っssh-keygen -t ed25519 -C "my@email.com"た. ファイル名github_mainを付け、パスフレーズを入力しました。すべてうまくいきました。
実行ssh-add ~/.ssh/github_mainすると問題が発生しましたが、少し異なるパスでコマンドを実行することで解決しました。が返さIdentity added: C:/Users/brent/.ssh/github_main (my@email.com)れたので、すべてがうまくいったと思いました。

次に、 との接続をテストしましたssh -T git@github.com。正常に接続されたと表示されましたが、GitHub はシェル アクセスを提供していないため、機能しているように見えました。

SSH トークンを GitHub アカウントに追加しましたが、そこにも問題はありません。次に、リポジトリの 1 つを SSH 経由で複製しようとしましたが、奇妙なことにうまくいきませんでした。次の結果が得られました。

Cloning into 'my-repo'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

HTTPS で同じリポジトリのクローンを作成しようとしましたが、うまくいきました。約 1 時間のグーグル検索と検索の後、ファイル名が結果に影響を与えないことを何度も読みましたが、ファイルの名前を元の名前に変更してみることにしました。公開鍵の名前を にid_ed25519.pub、秘密鍵の名前を に変更しましたid_ed25519。今回、SSHでリポジトリのクローンを作成しようとしたところ、パスフレーズを要求され、リポジトリのクローンが作成されました。特に、これまでに読んだすべてのことから、ファイル名は重要ではないと言われていたので、これは私を大いに混乱させます。

というid_ed25519名前のファイルでも機能しますが、このファイル名ではキーについて何もわからず、このように暗号化できるキーは 1 つだけなので、ファイルの名前を変更したいと思います。

4

1 に答える 1

1

すべてのデフォルト名を使用しているわけではありません。つまり、どこに置くかを ssh に伝える必要があります。毎回同じことを繰り返さないようにするには、 で検索する構成でそれを行い~/.ssh/configます。最初の行: addkeystoagent yes. 2 行目: host github. 3 行目: hostname github.com. 4 行目: identityfile path/to/your/privateidentityfile. host行はブロックを開始します。これgit clone git@github:yourghid/yourrepoで十分です。user gitホストの行を追加することもできますgit clone github:yourghid/yourrepo。つづりはあなた次第です。もし私がよくやっていたら、 , のようにつづりますが、うまくghいきhost gh user git hostname github.com identityfile ~/.ssh/id_ghますgit remote add linux gh:torvalds/linux

たとえばman 5 ssh_config、man セクション 5 はファイル形式です。Bash の補完はこのようなことを認識してman 5おり、たとえばタブを数回押して、ドキュメントのすべてのファイル形式を実際に表示しないことを伝えます。

于 2021-09-24T02:59:05.443 に答える