sshセッション内でscpを使用せずにファイルをコピーする方法は?


55

sshを使用してシステムにログオンしましたが、両方のシステムにscpがありません。scpプログラムを使用せずにファイルをコピーする方法。


netcat(nc)は両方のシステムに存在しますか?その場合は、sshセッションを使用してTCPポートをトンネリングし、そのポートでncを使用します。

ありますrsyncか?
-slhck

3
あなたもこれを行うことができます:ssh user@remotehost cat /path/to/remote/file > /path/to/local/file
N。「代名詞」m。

@nmの引用が必要です(私にとっては、ubuntuサーバー)
イヴァンブラック14

@nmが機能しません-ファイルが破損しています(ログインメッセージが壊れていると思います)。
monnef

回答:


94

ファイルを送信するには:

cat file | ssh ajw@dogmatix "cat > remote"

または:

ssh ajw@dogmatix "cat > remote" < file

ファイルを受信するには:

ssh ajw@dogmatix "cat remote" > copy

20
@gggはまったく真実ではありません。cd /tmp; cat /bin/bash > test; chmod a+x test; diff test /bin/bash; ./testすべて正常に動作します。バイナリファイルについて本質的に「魔法」はありません。私の例の両方のファイルは同じものを比較し、同じチェックサムを持っています。ターミナルウィンドウからのコピーと貼り付けは、コントロールシーケンスや印刷できない文字などの理由で機能しませんが、このようなパイプを使用してもターミナルの近くに行くことはありません。
フレキソ

@Flexoこのようなものが必要です。唯一の例外は、フォルダーからすべてのjpgをパイプする必要があることです。/ storage / sdcard1 / * jpgと>同じ名前のファイルを反復処理するにはどうすればよいですか?
ジョージ・プロフェンツァ

2
@GeorgeProfenzaをtarミックスに追加する必要があります。tar cvf - /path/*.jpg | ssh foo@bar.com "tar xvf -"または同様の何かが動作するはずです。
フレキソ

上記のgggとFlexoが言っていることの1つの意味は、sshに「-t」オプションを使用できないことです。
mjg123 14年

1
いいね!あなたはプログレスバーを取得するので、あなたはまた、例えば、PVの代わりに、最初の猫を使用することができますpv file | ssh ajw@dogmatix "cat > remote"
Theolodus


1

xxdいくつかのいクォートを使用して、複数のファイルをコピーし、それらに対してコマンドを実行して実行できます。

ssh -t foo@bar.com "
echo $'"$(cat somefile | xxd -ps)"' | xxd -ps -r > "'somefile'"
chmod +x somefile
echo $'"$(cat someotherfile | xxd -ps)"' | xxd -ps -r > "'someotherfile'"
chmod +x someotherfile
./somefile
./someotherfile
"

ああ、私の答えは明らかにすぎL33Tある
ARIC

-1

ファイルをリモートにパイプするほかに、catSFTPクライアントを使用してファイルを転送することもできます。


+1ですが、システムに存在しないため、OPはscpを回避しようとしていることに注意してください。この制約を考えると、FTPサーバーが受信側に存在する必要があり、コピープロセスがデフォルトで通常存在するもの以外のソフトウェアに依存する可能性もあります。
ポールサシク

-1

python3 -m http.server目的のファイルと同じディレクトリにある-の後にあなたができることcurlか、wgetまたはお使いのブラウザでファイルをダウンロードしてください。この実行コマンドを使用すると、Ctrl+ を押すまで、現在のディレクトリのすべてのファイルが公開されますC

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.