Выполнение программы на удалённом сервере, без её установки
Здраствуйте. Есть сервер на linux, к которому есть доступ по ssh, но нет прав на запись. Есть права на выполнение и чтение, но довольно ограниченные. Можно ли запустить на этом сервере например netststat и netcat, взяв их с другого сервера? Программная оболочка - bash. Возможности узнать дистрибутив - нет. Может и нет необходимости удалённо запускать программу. Задача звучит следующим образом:
You need to make HTTP request to port 80 locally. Actually... there is no tool on this machine for that, but is not the problem for you, right? Remember - everything is a file. Password is "password".
Задача на веб сокеты
Ответы (2 шт):
Хорошо, что написали как звучит исходная задача. С большой степенью вероятности ничего ставить на удаленную машину не надо.
В ssh есть такое понятие, как проброс портов. Запускаете:
ssh remote_host -L 10080:127.0.0.1:80
Далее на локальной машине (в другом окне) делаете все, что вам надо (netcat) на адрес 127.0.0.1, порт 10080 (вместо 10080 можете указать любой свой номер, если меньше 1024, то только под rootом).
Есть конечно же, некоторая вероятность (на самом деле очень небольшая), что Вам не повезет и на той стороне стоит очень урезанный вариант sshd без поддержки проброса портов, вот тогда уже и думать над другими вариантами. Например чаще всего есть запись в /tmp
Решение нашёл. Спасибо Yakov и KoVadim. Для тех, кому интересно: Нашёл программу networkctl в паке /bin. С её помощью узнал, что есть подключение по двум ip адресам. После этого нужно было сделать запрос через эхо следующим образом:
exec 4<>/dev/tcp/server/port
echo -e "GET / HTTP/1.1\r\nhost: server\r\nConnection: close\r\n\r\n" >&4
cat <&4