2016-02-24 2 views
0

Предположим, у меня есть ssh-сервер, работающий на удаленной машине. Серверы SSH должны работать на порту 22, так что это единственная информация, которая у меня есть.Как отправить данные на удаленный SSH-сервер?

Мне нужно отправить данные на этот сервер. Я знаю, что могу использовать scp для копирования файла, но что, если я хочу отправить буфер? Или закодированная строка?

я имел успех с cat тин строковым через SSH, как это:

cat text.txt | ssh [email protected] "cat > remote" 

Но это, кажется, как взломать. Разве нет способа отправить «запрос» на ssh-сервер так, как вы бы с HTTP-сервером? Я понимаю, что SSH-серверы используют tcp в качестве базового транспортного уровня, поэтому моя кишка говорит мне, что это должно быть возможно. Я просто не знаю, с чего начать экспериментировать с этим. Любой совет будет принят во внимание.

+0

Вы можете использовать пересылку порта ssh, если хотите использовать tcp. –

ответ

0

Я не думаю, что ваш «взлом» - это взлом вообще. Эффект довольно четко определен, и есть очень мало, что может пойти не так. Единственное, что я могу придумать, это то, что если «remote» - это произвольная строка, тогда вам придется ее правильно процитировать (но на самом деле scp имеет ту же проблему). Если это на самом деле проблема для вас, то вы могли бы сделать что-то вроде этого:

echo "/tmp/weird file name" | cat - text.txt | ssh [email protected] 'read filename; cat >"$filename"' 

Другое Кроме того, я не вижу никаких причин, чтобы уклоняться от вашего «взломать». Вы спрашиваете, можете ли вы отправлять «запросы» на SSH-серверы, и я бы сказал, что указание команд оболочки, как вы это сделали, точно так же, как SSH.

Смежные вопросы