Как определить архитектуру ОС и процессора удаленного сервера S SH - PullRequest
1 голос
/ 17 января 2020

У меня есть программа, которая подключается к удаленному компьютеру через S SH. Я хочу загрузить и запустить двоичный файл на этой машине. Для этого мне нужно знать, что это за ОС (я буду поддерживать Linux, Ma c и, вероятно, Windows) и какую архитектуру процессора (я, вероятно, буду поддерживать только x86_64, но было бы хорошо быть в состоянии обнаружить других и напечатать ощутимую ошибку, если это возможно).

Не похоже, что сам протокол S SH предоставляет какую-либо эту информацию. Есть ли простой, ROBUST способ сделать это? С как можно меньшим количеством хаков (без «скриптов» Bash!).

Лучшее, что я могу придумать, - это попробовать запустить uname -s -m и любой эквивалент Windows и проанализировать результаты.

1 Ответ

1 голос
/ 18 января 2020

Протокол S SH не предоставляет никакой информации об удаленной системе, кроме ее версии протокола. Тем не менее, часто поставщики включают строку в строку протокола. Например, если вы выполните nc gitlab.com 22 </dev/null | head -n 1, вы можете сказать, что GitLab работает с Ubuntu.

Однако не все удаленные системы предоставляют эту информацию, поэтому для надежного теста вам, вероятно, потребуется войти в систему. , Как уже упоминалось, вы можете запустить uname в Unix системах и cmd /c ver в Windows системах, чтобы узнать, в какой ОС вы работаете. Обратите внимание, что последний не будет работать на Windows, если вы войдете в систему на базе MinGW bash на Windows, поскольку /c будет переписан как C:\; вам нужно удвоить значение sla sh или использовать uname.

Я не знаю ни одной команды, которую вы можете вызвать, которая будет работать во всех системах, так что вы, вероятно, получите сделать несколько запросов оболочки. Возможно, вам лучше сделать это, используя библиотеку S SH, поскольку двоичный файл OpenS SH будет печатать любой баннер с удаленной стороны, хотите вы этого или нет, и это может быть перепутано с выводом, полученным с удаленного сторона.

...