2

我正在尝试使用 ssh 密钥连接到服务器,但我一直被要求输入密码。我尝试过使用和不使用 user_dir 选项。有没有人有任何想法?

:ssh.start
{:ok, S} = :ssh.connect('some.host.com', 22,
                        [
                         {:silently_accept_hosts, true},
                         {:user_dir, '/Users/nan/.ssh'}
                       ])
#...
:ssh.close(S)
:ssh.stop
4

1 回答 1

2

检查 ~/.ssh/config 文件的内容。我相信 Erlang 模块是直接在目录中查找 id_rsa 或 id_dsa 文件。您可能在 some.host.com 的配置文件中有一个条目,默认为不同的密钥位置或不同的用户名。因此,使用命令行进行日志记录是有效的,并且当模块尝试建立连接时它会失败。

还要检查您当前在代理会话中加载了哪些密钥 (ssh-add -L)。也许您为此特定主机使用的密钥与您怀疑的不同。

于 2013-09-13T17:43:07.617 回答