web-dev-qa-db-ja.com

Nautilusと秘密鍵を使用してリモートサーバーに接続できない

リモートサーバーには、認証のために秘密キーとパスフレーズが必要です。ローカルUbuntuデスクトップの非ルートアカウントに代わって実行されているNautilusから(そのサーバー上で)rootとしてサーバーに接続しようとしています。認証に必要な秘密鍵はnotにある~/.ssh(既に他の鍵を持っています)にありますが、別のディレクトリにあります。

明らかなアプローチに加えて、root@serverを[サーバー]フィールドに入れ、[ユーザー名]および[パスワード]フィールドを空白のままにして、[パスワード]フィールドにパスフレーズを入れてみましたが、拒否」され、どの時点でも秘密鍵を要求しません。

ssh-add path/to/privatekeyも試しましたが、「認証エージェントへの接続を開けませんでした。」と表示されますが、ssh-addがここでも関連するかどうかわかりません。

私は端末からサーバーにうまく接続することができます

ssh -i <...>/id_rsa root@server

次に続くパスフレーズの質問に答えます。

4
Desmond Hume

キー選択ダイアログが表示される理由がわかりません。受け入れることのできる認証方法を提供するのはサーバー次第であり、資格情報を提供するのはクライアント次第です。

これらの詳細を提供する最も一般的な方法の1つは、実行していないように見えるssh-agentを使用することです。これはssh-agentが常に実行されていることを確認するために~/.profileに入れた小さなスニペットです。

run_ssh_agent() {
  ssh-agent | grep -vi 'agent pid' > ~/.ssh-agent
  . ~/.ssh-agent
}

if [[ -f ~/.ssh-agent ]]; then
  . ~/.ssh-agent
  if [[ -n ${SSH_AGENT_PID} ]]; then
    if ! ps -p ${SSH_AGENT_PID} | grep 'ssh-agent' &>/dev/null; then
      run_ssh_agent
    fi
  fi
else
  run_ssh_agent
fi

コードをそこに配置し、Xセッションからログアウトし、再度ログインし、ターミナルを開いてエージェントにキーを追加します。

ssh-add /path/to/your/private_key

ssh-add -lを実行して追加されたことを確認し、パスワードを入力せずにNautilusを使用してサーバーに接続します。

4
Marcin Kaminski

Marcin Kaminskiのソリューションの短いバージョン(スクリプトをスキップ)は

ssh-agent
ssh-add /path/to/your/private_key
nautilus sftp://user@server

。解決策が機能するかどうかをテストすることから始める方が簡単だと思います。 PasswordAuthentication no/etc/ssh/sshd_configを設定した後も同じ問題が発生し、これら3つのコマンドで問題が解決しました。

8
Adriaan

次の操作を行うことで、秘密キーを使用してNautilus(Ubuntu 12.04)のサーバーに接続できました。

  • Nautilusで、メニュー「ファイル」->「サーバーに接続...」を選択します。
  • 「タイプ:」を「SSH」に変更します
  • [サーバー:]フィールドにサーバーのアドレスを入力します(username @は省略)
  • 「ユーザー名:」の後にユーザー名を入力しますが、パスワードフィールドは空のままにします。

「接続」をクリックすると、キーのロックを解除するためにパスワードが必要であることを通知するダイアログが表示されます。私の場合、キーはデフォルトの「〜/ .ssh/id_rsa」ではなかったため、SSHクライアントとサーバー間の通信で、使用するキーがNautilusに明らかになったはずです。

パスワードを入力すると、サーバー上のファイルを参照できる新しいNautilusウィンドウが開きました。左側のペインには、サーバーファイルシステムをu(n)マウントするために使用できるショートカット「サーバー上のユーザーのSFTP」があります。

1
jmidgren

私が正しく理解している場合、公開鍵認証を使用していますが、秘密鍵のロックを解除するにはパスワードが必要です。また、鍵を保護するパスワードの入力を求められないため、接続試行は失敗します。

この question は少し異なりますが、最初の答えは同じ状況を説明しているようです。ただし、パスワードダイアログは正常に機能することを意味します。おそらくそれは出発点を提供しますか?

ターミナルでsshを使用すると動作すると言うので、おそらくリモートホストIDの変更のようなものではなく、nautilusでサイレントエラーを引き起こす可能性があります。

0
chronitis