Des*_*ume 4 ssh nautilus authentication
远程服务器需要私钥和密码进行身份验证。我正在尝试root从 Nautilus连接到服务器(在该服务器上),代表我在本地 Ubuntu 桌面上的非 root 帐户运行。这是需要验证的私钥是不是设在~/.ssh(我已经有其它键存在),但我有它的另一个目录。
除了明显的方法之外,我还尝试将root@server“服务器”字段放入并将“用户名”和“密码”字段留空,将密码放在“密码”字段中,但它仍然显示“权限被拒绝”并且它没有在任何时候都不要要求私钥。
我也试过ssh-add path/to/privatekey,但它说“无法打开与您的身份验证代理的连接。”,但是我不确定ssh-add这里是否相关。
我可以从终端通过 ssh 进入服务器就好了
ssh -i <...>/id_rsa root@server
Run Code Online (Sandbox Code Playgroud)
并回答接下来的密码问题。
Marcin Kaminski 解决方案的简短版本(跳过脚本)是
ssh-agent
ssh-add /path/to/your/private_key
nautilus sftp://user@server
Run Code Online (Sandbox Code Playgroud)
. 我认为开始更容易,测试解决方案是否有效。我有同样的问题后,设置PasswordAuthentication no在/etc/ssh/sshd_config与这三个命令解决我的问题。
我根本不明白为什么要出现关键选择对话框。由服务器提供它愿意接受的身份验证方法,并由客户端提供凭据。
提供这些详细信息的最常见方法之一是使用您似乎没有运行的 ssh-agent。这是我放入的一个小片段,~/.profile以确保我的 ssh-agent 始终运行:
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
Run Code Online (Sandbox Code Playgroud)
将代码放在那里,注销您的 X 会话,重新登录,打开终端并将密钥添加到代理中:
ssh-add /path/to/your/private_key
Run Code Online (Sandbox Code Playgroud)
ssh-add -l通过使用 Nautilus 运行并连接到服务器(无需提供密码)来验证它是否已添加。
| 归档时间: |
|
| 查看次数: |
5639 次 |
| 最近记录: |