ssh-addで「Could not open a connection to your authentication agent」エラーが出た時の解決方法
「Could not open a connection to your authentication agent(認証エージェントへの接続を開けませんでした)」というエラーは、ssh-addコマンドで鍵のパスフレーズを登録しようとした際に表示されることがあります。この問題の主な原因は、ssh-agentが正しく割り当てられていないことです。そのため、やや特殊な環境で発生しやすいという特徴があります。
例えば、Raspbianを動かしているRaspberry Pi、コマンドプロンプトを取り出した組み込みルーター、Android上のLinuxターミナルなどでこのエラーに遭遇することがあります。幸い、デバイスの種類や使用しているシェルに関わらず、シンプルなコマンド1つで簡単に修正できます。
認証エージェントエラーの修正手順
1. ネットワーク接続を確認する
まず基本的なことですが、インターネットまたは使用中のネットワークに正しく接続できているかを確認しましょう。特に、EthernetやWi-Fiではなくプライベートネットワーク経由でのみSSHを使用する非標準的なLAN機器では、単純な接続不足が原因になっているケースが少なくありません。
2. 鍵ファイル名を明示してssh-addを実行する
接続に問題がないことを確認したら、実際の鍵ファイル名を指定して次のコマンドを実行してみてください。
ssh-add ~/.ssh/id_rsa
ここでは例として~/.ssh/id_rsaを使用していますが、実際には自分が追加したい鍵のファイル名に読み替えてください。コマンドを実行すると「Enter passphrase」というプロンプトが表示されます(Linux仮想端末と同様、入力内容は画面に表示されません)。パスフレーズが受け付けられれば、これ以上の作業は不要です。
3. ssh-agentを再割り当てする
それでも同じエラーが表示される場合は、エージェントを完全に再割り当てする必要があります。標準的なシェルを使用している場合は、以下の順にコマンドを実行します。
ssh-agent /bin/sh
ssh-add ~/.ssh/id_rsa
bashユーザーなら、Linuxコミュニティで「bashism(bash特有の記法)」と呼ばれるものを気にしないのであれば、よりシンプルに次のように実行することも可能です。
ssh-agent bash
ssh-add ~/.ssh/id_rsa
多くの環境では、rootユーザー・一般ユーザーともにbashがパス上に存在するため、追加の設定は一切不要です。
4. fishシェルの場合
fish-shellを使用している方は、代わりに次のコマンドを試してください。
ssh-agent /usr/bin/fish
ssh-add ~/.ssh/id_rsa
Bourneシェル、bash、Almquistシェルを使っている場合であれば、上記の方法で大多数のケースが解決するはずです。
5. Cシェル・tcshの場合
C-Shellやtcshを使用している場合は、少し異なる手順が必要です。tcshは他のシェルとは動作が異なるため、evalコマンドを使ってエージェントを登録します。
eval `ssh-agent -c`
ssh-add ~/.ssh/id_rsa
ただし、多くの組み込みシステムにはtcshがインストールされていない点には注意が必要です。いずれの場合も、コマンドを正しく入力していれば、この時点でSSH接続が正常に動作するはずです。万が一入力ミスをしても、これらのコマンドは破壊的ではないため、何度でも安全にやり直せます。
再起動後の注意点
設定によっては、システム再起動後にSSHへログインするたびに同じ操作を繰り返す必要がある場合があります。とはいえ、問題自体は1つのコマンドで簡単に解決できるため、長時間の試行錯誤に悩まされることはありません。
著者について
Kevin Arrows(ケビン・アローズ)
10年以上の業界経験を持つテクノロジースペシャリスト。Microsoft Certified Technology Specialist(MCTS)の資格を保有し、最新の技術動向を追いかけることに強い情熱を持っています。ソフトウェア開発、サイバーセキュリティ、クラウドコンピューティングなど幅広い分野で執筆活動を行っており、複雑な技術的概念を明確かつ簡潔に説明する能力で同業者から高く評価されています。
-
UFWをマスターする:Linuxファイアウォールセキュリティのステップバイステップガイド
UFWは「Uncomplicated Firewall(シンプルなファイアウォール)」の略であり、多くの人が思い込みがちな「Ubuntu Firewall」ではありません。この名前が示す通り、その設定は驚くほど簡単です。ほとんどのユーザーは、文字通り3つの設定を行うだけで、ある程度安全な状態にできます。さらに高度な設定を望む場合でも、テキストファイルを編集する程度の手間で済みます。UFWはUbuntuプロジェクトの開発者によって設計されましたが、Debian、Arch Linux、Linux Mint、Lubuntu、Xubuntuなど、他の多くのディストリビューションでも利用可能で、すでにイ
-
Linuxでコマンドラインから素早くファイルを作成する4つの方法
Linuxでは、手間をかけずに素早くファイルを作成したい場面が多々あります。例えば、後で中身を書き込むためのプレースホルダー(仮ファイル)を用意したいケースや、多くのプログラムが特定のディレクトリに空のファイルが存在するかどうかでオプションのオン/オフを切り替える仕組みになっているケースなどが挙げられます。また、コマンドラインから直接テキストファイルを作成することも可能です。以下の例を試すには、ターミナル環境で作業する必要があります。DashやWhiskerメニューで「terminal」を検索するか、Ctrl + Alt + F1〜F6キーで仮想端末を開くか、多くのデスクトップ環境ではCtrl