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服务器?_Ssh - Fatal编程技术网

如何将数据发送到远程SSh服务器?

如何将数据发送到远程SSh服务器?,ssh,Ssh,假设我有一个ssh服务器在远程机器上运行。SSH服务器必须在端口22上运行,所以这是我仅有的信息 我需要将数据发送到此服务器。我知道我可以使用scp复制文件,但如果我想发送缓冲区呢?还是编码字符串 我已经成功地通过ssh使用catting字符串,如下所示: cat text.txt | ssh user@host "cat > remote" echo "/tmp/weird file name" | cat - text.txt | ssh user@host 'read filena

假设我有一个ssh服务器在远程机器上运行。SSH服务器必须在端口22上运行,所以这是我仅有的信息

我需要将数据发送到此服务器。我知道我可以使用
scp
复制文件,但如果我想发送缓冲区呢?还是编码字符串

我已经成功地通过ssh使用
cat
ting字符串,如下所示:

cat text.txt | ssh user@host "cat > remote"
echo "/tmp/weird file name" | cat - text.txt | ssh user@host 'read filename; cat >"$filename"'
但这似乎是一个黑客。难道没有一种方法可以像使用HTTP服务器那样向ssh服务器发送“请求”吗?我的理解是SSH服务器使用tcp作为基本传输层,所以我的直觉告诉我这应该是可能的。我只是不知道从哪里开始试验。任何建议都将不胜感激。

我认为你的“黑客”根本不是黑客。这种影响确实是非常明确的,几乎不会出错。我唯一能想到的是,如果“
remote
”是一个任意字符串,那么您必须正确地引用它(但事实上,
scp
也有同样的问题)。如果这对你来说确实是个问题,那么你可以这样做:

cat text.txt | ssh user@host "cat > remote"
echo "/tmp/weird file name" | cat - text.txt | ssh user@host 'read filename; cat >"$filename"'

除此之外,我不认为有任何理由回避你的“黑客”。您询问是否可以将“请求”发送到SSH服务器,我认为像您这样指定shell命令正是SSH所做的。

如果您想使用tcp,您可以使用SSH端口转发。