+-
linux – 如何获得sftp版本的远程服务器?
作为尝试调试问题的一部分,我想知道在我尝试推送文件的远程服务器上安装了哪个版本的sftp.

我被告知在命令行使用-vvv,但我不能提供任何关于它的文档.还有其他选择吗?我的服务器是基于Linux的.

我的另一个问题是:说两个服务器没有安装相同版本的SFTP,是否有一种协议版本协商以确保它们“说同一种语言”?

最佳答案
要获取远程SSH版本,您可以telnet到ssh端口.远程ssh服务器将发送其软件版本字符串:

$telnet localhost 22
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.9

在ssh调试输出中,您将查找以下行:

debug1: Local version string SSH-2.0-OpenSSH_6.9
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.9

第一行是本地客户端的版本.第二行是远程服务器的ssh协议和软件版本.

你在这里寻找的是“OpenSSH_6.9”部分.这告诉你远程服务器是OpenSSH.实际的SFTP服务器几乎肯定是该版本的OpenSSH附带的sftp-server程序.

如果您特别需要the SFTP protocol version,则sftp命令行实用程序具有“version”命令,用于打印协商的协议版本:

sftp> version
SFTP protocol version 3

您也可以通过运行“sftp -vv”并查找此行调试输出来获取它:

debug2: Remote version: 3

请注意,OpenSSH是迄今为止使用最广泛的SSH服务器,它统一实现了SFTP版本3.

我要补充一点,OpenSSH调试输出没有真正的文档.理解它的方法是download a copy of the source并找出哪些调试消息具有您想要的信息.

点击查看更多相关文章

转载注明原文:linux – 如何获得sftp版本的远程服务器? - 乐贴网