Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检测远程SSH服务器的操作系统和CPU体系结构_Ssh_Operating System - Fatal编程技术网

如何检测远程SSH服务器的操作系统和CPU体系结构

如何检测远程SSH服务器的操作系统和CPU体系结构,ssh,operating-system,Ssh,Operating System,我有一个通过SSH连接到远程机器的程序。我想在那台机器上上传并运行一个二进制文件。为了做到这一点,我需要知道它是什么操作系统(我将支持Linux、Mac,可能还有Windows),以及什么样的CPU体系结构(我可能只支持x86_64,但如果可能的话,最好能够检测到其他操作系统并打印出合理的错误) SSH协议本身似乎没有提供任何此类信息。有没有一种简单、可靠的方法可以做到这一点?使用尽可能少的黑客(没有毛茸茸的Bash脚本!) 我能想到的最好的办法是尝试运行uname-s-m,以及任何与Windo

我有一个通过SSH连接到远程机器的程序。我想在那台机器上上传并运行一个二进制文件。为了做到这一点,我需要知道它是什么操作系统(我将支持Linux、Mac,可能还有Windows),以及什么样的CPU体系结构(我可能只支持x86_64,但如果可能的话,最好能够检测到其他操作系统并打印出合理的错误)

SSH协议本身似乎没有提供任何此类信息。有没有一种简单、可靠的方法可以做到这一点?使用尽可能少的黑客(没有毛茸茸的Bash脚本!)


我能想到的最好的办法是尝试运行
uname-s-m
,以及任何与Windows等效的程序,并解析结果。

SSH协议除了其协议版本之外,不提供任何有关远程系统的信息。但是,供应商通常会在协议字符串中包含字符串。例如,如果您执行
nc gitlab.com 22