SSH 到端口

SSH 到端口

考虑以下两个命令:

创建 smtp 消息 | ssh -p 25 服务器帐户
创建 smtp 消息 | ssh 服务器帐户 telnet localhost 25

根据我对 ssh(1) 的理解,它们应该做同样的事情。相反,第二个会将 create-smtp-message 的输出从 serveraccount 发送到服务器的端口 25(即,它可以工作),而第一个则挂起。

我猜这只是我误解了 ssh 在被赋予 -p 标志时会做什么,但万一出现一些配置错误:发出类似命令的客户端是带有 openssh ssh (OpenSSH_5.1p1,OpenSSL 0.9.7l 28 Sep 2006) 的 osx-tiger,服务器运行 Debian Sarge (真的吗?必须升级!) 带有 openssh sshd (OpenSSH_3.8.1p1 Debian-8.sarge.6,OpenSSL 0.9.7e 25 Oct 2004)。授权使用 DSA,如 .ssh/config 文件中所指定。

答案1

您的第一个示例是告诉 ssh 连接到非标准端口上的 ssh 守护进程(服务器端进程),在本例中为 25。如果 sshd 守护进程未在此端口上监听,则连接尝试将超时或因协议问题而出错,就像您所遇到的那样。

第二个命令是告诉 ssh 与“serveraccount”建立正常连接(通过端口 22 进行)并远程执行 telnet 命令到 localhost:25。create-smtp-message 的输出将成为 telnet 命令的标准输入,从而允许您的 SMTP 服务器接收您的消息。

答案2

ssh 需要另一端的 sshd 才能进行连接。-p 选项指定此连接将在哪个端口上进行,如果不是默认端口。它存在的原因并不是让某人能够通过 ssh 连接到 smtp 服务器或 Web 服务器。但是,这是第一行尝试的错误,它失败了,因为这些端口不是可以处理和解密 ssh 加密协议的 sshd。请记住,-p 选项的存在只是为了让偏执狂能够将其 sshd 端口移动到某个不明显的数字。

ssh 不是 telnet 的克隆,而是一个安全的替代了主要内容,但是不安全telnet 的应用程序——创建远程终端连接。

telnet 的一个传统用途是创建一个哑终端连接,以便任何系统中的端口。然后,您可以逐字地向该端口发送和接收字符。在第 2 行中,您使用 ssh 加密与远程主机的会话,然后在远程主机上调用该主机上的 telnet 将会话中的信息发送到 smtp 服务器。

另一方面,Ssh 尝试将所有内容包装在加密中(而不是明文),并且需要 sshd 进行通信,这是进行解密的唯一方式。

您可能想了解的是使用 ssh 加密对未加密流量端口进行端口转发,但这是一个高级应用程序,并且不清楚您是否需要它。您的第二行可能足以满足您所述目的。

相关内容