我正在尝试使用ssh密钥连接到服务器,但我一直要求输入密码。我已尝试使用和不使用用户目录选项。有没有人有任何想法?
:ssh.start
{:ok, S} = :ssh.connect('some.host.com', 22,
[
{:silently_accept_hosts, true},
{:user_dir, '/Users/nan/.ssh'}
])
#...
:ssh.close(S)
:ssh.stop
答案 0 :(得分:2)
检查〜/ .ssh / config文件的内容。我相信Erlang模块直接在目录中查找id_rsa或id_dsa文件。您的配置文件中可能有some.host.com的条目,默认为不同的密钥位置或不同的用户名。因此,使用命令行进行日志记录工作,并且在模块尝试建立连接时失败。
还要检查代理会话中当前加载的密钥(ssh-add -L)。也许您正在使用与您怀疑的特定主机不同的密钥。