リモートサーバーには、認証のために秘密キーとパスフレーズが必要です。ローカルUbuntuデスクトップの非ルートアカウントに代わって実行されているNautilusから(そのサーバー上で)root
としてサーバーに接続しようとしています。認証に必要な秘密鍵はnotにある~/.ssh
(既に他の鍵を持っています)にありますが、別のディレクトリにあります。
明らかなアプローチに加えて、root@server
を[サーバー]フィールドに入れ、[ユーザー名]および[パスワード]フィールドを空白のままにして、[パスワード]フィールドにパスフレーズを入れてみましたが、拒否」され、どの時点でも秘密鍵を要求しません。
ssh-add path/to/privatekey
も試しましたが、「認証エージェントへの接続を開けませんでした。」と表示されますが、ssh-add
がここでも関連するかどうかわかりません。
私は端末からサーバーにうまく接続することができます
ssh -i <...>/id_rsa root@server
次に続くパスフレーズの質問に答えます。
キー選択ダイアログが表示される理由がわかりません。受け入れることのできる認証方法を提供するのはサーバー次第であり、資格情報を提供するのはクライアント次第です。
これらの詳細を提供する最も一般的な方法の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を使用してサーバーに接続します。
Marcin Kaminskiのソリューションの短いバージョン(スクリプトをスキップ)は
ssh-agent
ssh-add /path/to/your/private_key
nautilus sftp://user@server
。解決策が機能するかどうかをテストすることから始める方が簡単だと思います。 PasswordAuthentication no
に/etc/ssh/sshd_config
を設定した後も同じ問題が発生し、これら3つのコマンドで問題が解決しました。
次の操作を行うことで、秘密キーを使用してNautilus(Ubuntu 12.04)のサーバーに接続できました。
「接続」をクリックすると、キーのロックを解除するためにパスワードが必要であることを通知するダイアログが表示されます。私の場合、キーはデフォルトの「〜/ .ssh/id_rsa」ではなかったため、SSHクライアントとサーバー間の通信で、使用するキーがNautilusに明らかになったはずです。
パスワードを入力すると、サーバー上のファイルを参照できる新しいNautilusウィンドウが開きました。左側のペインには、サーバーファイルシステムをu(n)マウントするために使用できるショートカット「サーバー上のユーザーのSFTP」があります。
私が正しく理解している場合、公開鍵認証を使用していますが、秘密鍵のロックを解除するにはパスワードが必要です。また、鍵を保護するパスワードの入力を求められないため、接続試行は失敗します。
この question は少し異なりますが、最初の答えは同じ状況を説明しているようです。ただし、パスワードダイアログは正常に機能することを意味します。おそらくそれは出発点を提供しますか?
ターミナルでssh
を使用すると動作すると言うので、おそらくリモートホストIDの変更のようなものではなく、nautilus
でサイレントエラーを引き起こす可能性があります。