0%

erlang下ssh daemon

曾多次在windows下尝试ssh:daemon/2,但是每次用ssh客户端连接都提示找不到匹配的host key算法
在linux下又可以,一直认为是该接口不支持windows,毕竟windows本身是不支持ssh的

今天又尝试了下, 原来是自己错了

1
2
3
{system_dir, string()}
Sets the system directory, containing the host key files that identifies the host keys for ssh.
The default is /etc/ssh, note that for security reasons this directory is normally only accessible by the root user.

如上描述,默认是/etc/ssh,但是windows没有/etc/ssh,所以提示找不到匹配的host key算法

生成system_dir需要的key

1
$ ssh-keygen -t rsa -f config/ssh_daemon/ssh_host_rsa_key

erlang启动

1
2
3
4
5
6
7
8
1> application:ensure_all_started(ssh).
2> {ok, Pid} = ssh:daemon(10000, [
{system_dir, "config/ssh_daemon"},
%% 方式1
{user_passwords, [{"aaa", "123456"}]},
%% 方式2
{pwdfun, fun("aaa", "123456") -> true; (_, _) -> false end}
]).

客户端测试

1
$ ssh aaa@127.0.0.1 -p 10000

参考文档

  1. http://erlang.org/doc/apps/ssh/using_ssh.html