生成されたSSHキーをSSHエージェントに追加することはできません。 「認証エージェントへの接続を開けません。」

生成されたSSHキーをSSHエージェントに追加することはできません。 「認証エージェントへの接続を開けません。」

まず、はい、こことstackoverflowで同様の質問と回答を読みました。特に明確な結果が出ないようで、また質問をさせていただきました。

私は最新のDebian Busterを使用しており、端末でGitHubへのアクセスを設定しようとしています。 SSH接続を確立するために公式GitHubウェブサイトの手順に従いました。ここそしてここ

user@home-machine ~ $ sudo ssh-keygen -t ed25519 -C "my@email"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/root/.ssh/ed25519): 
Enter passphrase (empty for no passphrase): [I don't use passphrase]
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/ed25519.
Your public key has been saved in /root/.ssh/ed25519.pub.
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx my@email
The key's randomart image is:
+--[ED25519 256]--+
xxxxxxxxxxxxxxxxxxx
+----[SHA256]-----+

user@home-machine ~ $ eval "$(ssh-agent -s)"
Agent pid 2864
user@home-machine ~ $ ssh-add ~/.ssh/id_ed25519
/home/user/.ssh/id_ed25519: No such file or directory
user@home-machine ~ $ sudo ssh-add ~/.ssh/id_ed25519
#here is me being stupid and not seeing the correct path, bu I amended the mistake below
user@home-machine ~ $ sudo ssh-add root/.ssh/id_ed25519
[sudo] password for user:
Could not open a connection to your authentication agent.

なぜ動作しないのですか?私は何が間違っていましたか?申し訳ありません。私はLinuxとgitを学んでいますが、何かが欠けている可能性があります。ご協力ありがとうございます。

編集する: 次のコマンドを実行してみてください。

debtop@DebTop:~$ echo $SSH_AGENT_PID
2864
debtop@DebTop:~$ echo $SSH_AUTH_SOCK
/tmp/ssh-wpXiIKBOY4x7/agent.2863
debtop@DebTop:~$ eval$(ssh-agent -s)
bash: evalSSH_AUTH_SOCK=/tmp/ssh-yUWON3uD5kT5/agent.4242;: File or directory doesn't exist

ベストアンサー1

user@home-machine ~ $ eval "$(ssh-agent -s)"
Agent pid 2864

ssh-agentここではで始まりますuser。これはSSH_AUTH_SOCK、他のSSHツールでプロキシのUnixソケットを見つけるために使用される環境変数を初期化します。

user@home-machine ~ $ sudo ssh-add root/.ssh/id_ed25519
[sudo] password for user:
Could not open a connection to your authentication agent.

ssh-addここでは で呼び出しますroot。 sudoを介してsudo渡すように明示的に構成していない場合SSH_AUTH_SOCK移行されません。そのroot環境。

環境変数がないと、ソケットはランダムに名前付きのサブディレクトリ(通常は)にあるため、ssh-addコマンドはソケットを見つけることができません。ソケットとソケットがあるディレクトリもルートからのみアクセスできますが、通常ルートでは問題になりません。ssh-agent/tmp/ssh-<random_alphabet_soup>/agent.<number>user

エージェントが変換プロセス全体でそのユーザーのために特別に機能するようにするには、次のsudo内容をファイルに追加する必要があります/etc/sudoers

Defaults:user env_keep+=SSH_AUTH_SOCK

user(もちろん、実際のユーザー名に変更してください。)

rootに変換を使用してすべてのユーザーに機能させるには、sudo次のようにします。

Defaults>root env_keep+=SSH_AUTH_SOCK

おすすめ記事