- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 OTP ssh 守护进程实现的行为有点困惑,我想知道是否有人可以帮我解决问题。预赛;我有以下程序:
-module(sshd).
-export([start/0, stop/1]).
-spec start() -> {ok, ssh:ssh_daemon_ref()} | {error, atom()}.
start() ->
_ = application:start(crypto),
_ = application:start(ssh),
Opts = [
{system_dir, "/etc/erl_sshd/"},
{pwdfun, fun passwd/2}
],
ssh:daemon(2222, Opts).
-spec stop(ssh:ssh_daemon_ref()) -> ok.
stop(Ref) ->
ssh:stop_daemon(Ref).
%% ===================================================================
%% Internal Functions
%% ===================================================================
-spec passwd(User::string(), Password::string()) -> boolean().
passwd(User, User) ->
true;
passwd(_User, _Password) ->
false.
并已在磁盘上创建了 /tmp/erl_sshd
,如下所示:
> mkdir /tmp/erl_sshd
> ssh-keygen -t rsa -f /tmp/erl_sshd/ssh_host_rsa_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /tmp/erl_sshd/ssh_host_rsa_key.
Your public key has been saved in /tmp/erl_sshd/ssh_host_rsa_key.pub.
The key fingerprint is:
...
使用 OpenSSHd 进行测试:
> /usr/sbin/sshd -p 2222 -h /tmp/erl_sshd/ssh_host_rsa_key -d
debug1: sshd version OpenSSH_5.6p1
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: setgroups() failed: Operation not permitted
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-p'
debug1: rexec_argv[2]='2222'
debug1: rexec_argv[3]='-h'
debug1: rexec_argv[4]='/tmp/erl_sshd/ssh_host_rsa_key'
debug1: rexec_argv[5]='-d'
debug1: Bind to port 2222 on 0.0.0.0.
Server listening on 0.0.0.0 port 2222.
debug1: Bind to port 2222 on ::.
Server listening on :: port 2222.
我可以得到提示,没有问题:
> ssh localhost -p 2222 -v
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Applying options for *
debug1: Connecting to localhost [::1] port 2222.
debug1: Connection established.
debug1: identity file /Users/blt/.ssh/id_rsa type 1
debug1: identity file /Users/blt/.ssh/id_rsa-cert type -1
debug1: identity file /Users/blt/.ssh/id_dsa type -1
debug1: identity file /Users/blt/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.6
debug1: match: OpenSSH_5.6 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: checking without port identifier
The authenticity of host '[localhost]:2222 ([::1]:2222)' can't be established.
RSA key fingerprint is 01:0e:c6:0b:f4:48:ab:0a:49:2a:66:38:27:67:8f:52.
Are you sure you want to continue connecting (yes/no)? ^C
但是当我启动 erlang sshd 时:
> erl
Erlang R15B03 (erts-5.9.3) [source] [64-bit] [smp:8:8] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.9.3 (abort with ^G)
1> c(sshd), {ok, Ref} = sshd:start().
{ok,<0.49.0>}
2>
运气不好:
> ssh localhost -p 2222 -v
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Applying options for *
debug1: Connecting to localhost [::1] port 2222.
debug1: Connection established.
debug1: identity file /Users/blt/.ssh/id_rsa type 1
debug1: identity file /Users/blt/.ssh/id_rsa-cert type -1
debug1: identity file /Users/blt/.ssh/id_dsa type -1
debug1: identity file /Users/blt/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version Erlang
debug1: no match: Erlang
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-sha1 none
debug1: kex: client->server aes128-cbc hmac-sha1 none
no hostkey alg
除了创建用户之外,我还执行了 User Guide 中概述的相同步骤。并涵盖了与 this question 相同的领域。我使用的是 OS X 系统:
> sw_vers
ProductName: Mac OS X
ProductVersion: 10.7.5
BuildVersion: 11G63
如果我以 root 用户身份运行 erlang shell 并将 system_dir
重定向到 /etc
,一切都会按预期进行。其他人清楚发生了什么吗?也许 erlang 默默地出错了 /tmp/erl_sshd
目录的用户权限?我之前已经打开了 sasl 应用程序,但输出中没有任何内容让我觉得相关。
最佳答案
看起来在设置{system_dir, "/etc/erl_sshd/"}
时它实际上应该是/tmp/erl_sshd/
。您已将所有守护程序文件添加到 /tmp/erl_sshd
。运行 OpenSSH 时,您还可以使用 /tmp/erl_sshd
以及正确的文件。
关于macos - 为什么这个 erlang ssh 守护进程响应 'no hostkey alg' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17312981/
我目前正在尝试使用 Git 插件运行 Netbeans。如果我想从 Netbeans 中克隆我的 git 存储库,我会收到错误消息:拒绝 hostKey:[存储库 url]并且克隆中止。 这是什么意思
我第一次尝试从 WinSCP 命令行连接到 Unix 服务器。 它以以下错误结束: The server's host key was not found in the cache. You have
我正在使用 JGit 创建和克隆一个存储库(远程是一个 bitbucket 存储库 - 是的,我添加了我的部署 key )。本质上,我: 创建存储库 禁用 JSch 严格主机 key 检查 设置 JS
我正在尝试使用 JSch 将文件从 Windows 机器发送到 Linux 机器。因此,我将主机公钥从 Linux 机器复制到我的 Windows 机器,并将该 key 添加到我的 HostKeyRe
我正在尝试使用 Spring Integration sftp 出站 channel 适配器将文件发送到 sftp。 我收到以下错误.. Caused by: java.lang.IllegalSt
我对 OTP ssh 守护进程实现的行为有点困惑,我想知道是否有人可以帮我解决问题。预赛;我有以下程序: -module(sshd). -export([start/0, stop/1]). -spe
需要通过 Jumphost 通过 SSH 连接到目标主机。已尝试过 JSch JumpHosts example 中提到的相同内容. Session[] sessions = new Session[
我正在尝试使用 Gradle 上传 jar 并使用 Gradle SSH 插件:https://gradle-ssh-plugin.github.io/ 不幸的是,目标执行错误 * What went
所以我在通过 SFTP 连接到远程服务器时遇到了很多问题。我已经尝试了如下的正常方式。 sftp = pysftp.Connection(host='Host',username='username'
我正在尝试连接到我的 mac 上的 Vagrant 机器(我使用的是 Mac OS High Sierra)。 我正在使用私钥连接到它,但我卡在这条线上: client_input_global_re
我编写了一个 Python 脚本来使用 key 身份验证连接到 SFTP 服务器。它成功连接到服务器但显示以下警告(见下文)。这是什么意思以及如何删除它。必须对代码进行哪些更改? 我的代码: impo
我正在尝试使用带有以下命令行参数的 SSIS 执行进程任务建立 SFTP 连接。 /log=G:\USER_DATA\USER_USER_SYNC\SFTP_LOG\user_sync_winscp.
我尝试根据说明在我的 Java 程序中使用 SSH 在 PythonAnywhere 中建立与 MySQL 基础的连接: https://help.pythonanywhere.com/pages/A
我正在尝试部署一个 Django Web 应用程序,该应用程序使用 pysftp 通过某些 View 访问 SFTP 服务器。 这件事在本地开发中运行得很好,但是当尝试在 Heroku 上进行第一次部
我正在尝试使用 pysftp 并得到与许多其他人相同的错误。主机没有主机 key 。我尝试了很多修复方法,但似乎都不起作用。 当我尝试设置主机名时,出现以下错误: cnopts = pysftp.Cn
我是一名优秀的程序员,十分优秀!