回答:
scpこの目的に使用することができます。SSHプロトコルを使用してファイルを転送する安全な手段です。
たとえば、yourfile.txtfrom という名前のファイル~/Downloadsをリモートコンピューターにコピーするには、次を使用します。
scp ~/Downloads/yourfile.txt your_username@remotehost.edu:/some/remote/directory
              rsyncそれについて考えるので、同様に動作するかもしれないと思う
                    scp上記で置き換えrsyncてください、それはうまく動作するはずです。
                    rsync単純な場合は「機能する」だけで、他の場合ははるかに効率的であるため、単一のファイルでもすべてに使用する傾向があります。いずれかを使用している場合scpか、rsync何もない既に圧縮および/または暗号化された上で、(上の圧縮オプション有効にすることを忘れない-Cためにscp、-zまたは--compressのためにrsync)。実際、私は習慣でそれをオンにします-それが物事を遅くする状況を見つけることは非常にまれです(おそらく、rPiのような限られたCPI電力で遅い低電力デバイスを使用している場合)。
                    これにscpは明らかに適切なツールですが、何らかの理由で使用できない場合は、ローカルマシンから次のような操作を行って、たとえばディレクトリ構造をリモートマシンにコピーできます。
tar -c . | ssh <remote> tar -x
この意志tarという現在のローカルマシン上のディレクトリ、および書き込みtarにstdoutどの、その後にパイプされますssh、それはそれから読み取り、ファイルをuntarするために、リモートコマンドを実行するコマンドstdin
-f -作成と抽出の両方の終了時のデフォルトであるというDietrich Eppのコメントを反映するように編集されたため、明示的に指定する必要はありません。
-C basedir引数を追加するtar必要があります。
                    まれにこれを行いたい場合、sshfsFUSE(Linux、* BSD、Mac OS X)をサポートするUnixライクを使用している場合は、リモートファイルシステムをマウントすることをお勧めします。〜/ remote-serverという名前のホームディレクトリの下にディレクトリを作成します。
    $ mkdir ~/remote-server
次に、でリモートファイルシステムをマウントしますsshfs。「yourserver.com」をリモートマシンのホスト名に、「リモートディレクトリの名前」をリモートシステムで使用しているディレクトリに置き換えます。
    $ sudo sshfs username@yourserver.com:/name/of/remote/directory ~/remote-server/
これが完了すると、リモートディレクトリはファイルシステムの一部となり、次のような通常のツールをすべて使用できますcp。
    $ cp ~/Downloads/your-files ~/remote-server
あなたが既に持っていない場合はsshfsインストールされ、あなたは(という名前のパッケージを探して、あなたのパッケージマネージャを使用してコンピュータにインストールすることができる必要がありますsshfsかfuse-sshfs)。詳細については、オンラインでチュートリアルを読むことができます。
ところで、これはリモートサーバー上のファイルを管理する私のお気に入りの方法です。通常、この方法で1つの運用サーバーと2つの開発サーバーをマウントしたままにして、通常のファイルブラウジングワークフローを使用します。
-o idmap={none,user,file},gid=<remote_user_group_ID>,allow_otherし、-C乏しい帯域幅場合は圧縮のために。うまく機能したらすぐに、コマンドのエイリアスを個人的に追加して、sshを介して遠くのファイルシステムをすばやくマウントします。@Benjamin_Staton少なくとも適切なユーザー/グループマッピングがなければ、ここではsudoまたはrootを使用しません。
                    最初に、scp(コピーオーバーssh)との間に実際の違いはありませんrsync。
後続の実行では、rsyncが既に存在するファイルをコピーしないため、メリットがあります。
rsync -avH ~/Downloads  username@remotehost:Downloads
-a すべてのファイル-v 冗長な-H 「シンボリックリンクを見つけて正しいことをするだけ」他の有用なフラグは次のとおりです。
--delete    コピー元に存在しなくなったコピー先のファイルを削除します。--dry-run    テスト用-と組み合わせると非常に便利--deleteです。sshパスワードを設定している場合は、これもキーを使用してパスワードなしのログインを実行します。
実行の最後にrsync、プレーンコピーを再度実行した場合の速度が何倍速かを示します。
-H実際にはハードリンク用であり、ソースディレクトリ構造内の複数の場所にリンクされると、同じコンテンツが2回以上送信されるのを停止します(ただし、大きなディレクトリ構造ではプロセスの効率が低下する可能性があります)。シンボリックリンクには影響しませんが、-a/に含まれるオプションの一部は、--archiveシンボリックリンクの処理方法に影響します。
                    私はsshで非常に似たようなことをしています。Visual Studio用のカスタムビルドツールを作成し、基本的にVSにsshコマンドを実行させて、コードをターゲットコンピューターにコピーし、そのターゲットコンピューターでコンパイルします。
ssh userB @ hostB 'cp /network/path/of/source/file.ext /path/of/final/file.ext; ./runCustomCommand '
単一引用符とセミコロンの使用に注意してください。前者はsshを介してhostBへのコマンドをカプセル化し、後者はhostAから1つのsshコマンドで複数のhostBシステムコマンドを実行できるようにします。
これを機能させるには、起動マシンでsshキーを設定して、userA @ hostAになり、userBとしてhostBにログインできるようにする必要があります。userA @ hostAの公開sshキーを作成するプロセスは、十分に文書化されています。hostAでuserAの公開鍵を作成せず、その鍵をuserBとしてhostBにコピーしないと、毎回パスワードを入力する必要があります。これは自動化の喜びを台無しにします。
this file)と複数のファイル(a series of software files)を参照しています。最良の解決策は、単一のファイルを持っているか複数のファイルを持っているかによって異なります。