Erlang:ssh身份验证错误。如何使用标识文件连接到ssh
尝试连接ssh主机时出现身份验证错误 目标是使用本地转发连接到主机。下面的命令是一个使用drop bear ssh客户端通过本地转发连接到主机的示例Erlang:ssh身份验证错误。如何使用标识文件连接到ssh,erlang,elixir,Erlang,Elixir,尝试连接ssh主机时出现身份验证错误 目标是使用本地转发连接到主机。下面的命令是一个使用drop bear ssh客户端通过本地转发连接到主机的示例 dbclient -N -i /opt/private-key-rsa.dropbear -L 2002:1.2.3.4:2006 -p 2002 -l test_user 11.22.33.44 到目前为止,我有这个返回空连接的代码 ip = "11.22.33.44" user = "test_user" port = 2002 ssh_c
dbclient -N -i /opt/private-key-rsa.dropbear -L 2002:1.2.3.4:2006 -p 2002 -l
test_user 11.22.33.44
到目前为止,我有这个返回空连接的代码
ip = "11.22.33.44"
user = "test_user"
port = 2002
ssh_config = [
user_interaction: false,
silently_accept_hosts: true,
user: String.to_charlist(user),
user_dir: String.to_charlist("/opt/")
]
# returns aunthentication error
{:ok, conn} = :ssh.connect(String.to_charlist(ip), port, ssh_config)
这就是我看到的错误
Server: 'SSH-2.0-OpenSSH_5.2'
Disconnects with code = 14 [RFC4253 11.1]: Unable to connect using the available authentication methods
State = {userauth,client}
Module = ssh_connection_handler, Line = 893.
Details:
User auth failed for: "test_user"
我是长生不老药的新手,已经读了两天了。我在文档中没有发现任何难以理解的示例。您使用的是非默认密钥名,
私钥rsa.dropbear
。默认情况下,Erlang查找这组名称:
发件人:
- 可选:在公钥授权的情况下,一个或多个用户的私钥。默认文件是
- id_dsa和id_dsa.pub
- id_rsa和id_rsa.pub
- id_ecdsa和id_ecdsa.pub`
私钥rsa.dropbear
重命名为id\u rsa
。如果这样做有效,下一步将是在ssh\u config
中添加一个,它将返回正确的密钥文件名
类似功能的一个示例实现是。解决方案是将dropbear密钥转换为ssh密钥。我用过作为参考 下面是将dropbear密钥转换为ssh密钥的命令
/usr/lib/dropbear/dropbearconvert dropbear openssh /opt/private-key-rsa.dropbear /opt/id_rsa
您的示例命令在shell中有效吗?@NicNilov是的,它有效您是对的。此外,dropbear(dbclient)的密钥与ssh密钥不兼容。我必须将dropbear密钥转换为ssh密钥。有关更多详细信息,请参阅答案。