
ssh-agentサービスはユーザーに対して有効になっており、エラーなしで実行されています。 (状態はアクティブです)。
ただし、sshを使用しようとするとエラーが発生しますCould not open a connection to your authentication agent.
。なぜこれが起こるのかわかりません。以前はsshがすぐに動作し、私のキーを介してサーバーに接続できましたが、今は接続したいのですが、エラーが発生して追加して試しましたが、Permission denied (public key)
これssh-add
を得ました.
私は問題を解決する方法を見つけて解決策を見つけましeval $(ssh-agent -s)
たが、うまくいきbash
、使用中で、fish
環境変数を手動で設定し、毎回実行する必要があることを検索しました。以前は働いていました。自分で実行する方法を検索し、ssh-agentデーモンを有効にする必要があると検索しましたが、有効にしましたが機能しますが、bashを実行してもエラーは残ります。同じエラーです。
システム: Arch Linux
答え1
私は問題を解決する方法を検索してeval $(ssh-agent -s)ソリューションを見つけましたが、bashでのみ機能します。魚を使っています。
ここには適用されません。これには1つを開始するコマンドがあります。新しいssh-agentのインスタンス(そしてさらに重要なのは、ssh-agentの起動時に出力する環境変数を設定すること)です。
コマンドが正しく実行されると、構文の前にコマンドの意味に焦点を当てます。ものその後、その構文をすべてのシェルに適用できます。
そこで検索してみると、環境変数を手動で設定し、毎回そうする必要があることがわかりました。
本当に毎回これをしなければなりません。
Arch Linuxが提供する.serviceには、ssh-agentがユーザー全体の環境変数を設定できるようにするオプションはありません(実際には、Package Managerが考えているのとは反対の方向に機能するPassEnvironment =があるため、この場合は何もしません) 、systemdにはこれを可能にする一般的なメカニズムさえありません。
したがって、このサービスを使用する唯一の方法は、ログインスクリプトを介してSSH_AUTH_SOCKを手動で設定することです。
それは効果がありました。
GNOME Keyring(ログイン時にssh-agent環境変数を自動的に設定できるPAMモジュールがあります)やpam_ssh(再)などの他のものを使用している可能性があります。