Linuxターミナルを介してローカルファイルをサーバーにアップロードする方法


47

PuttyまたはSSHを使用してローカルファイルをサーバーにアップロードしようとしていますが、そこにアップロードされません。

FTPなどを使用せずにLinuxターミナルからローカルからサーバーにファイルをアップロードする直接的な方法はありますか?


SFTPはあなたが探しているものです。

Linuxターミナルを使用してローカルファイルをサーバーに転送したい。puttyまたはsshでサーバーにアクセスしたが、同じ端末ではファイルを転送できなかったとします。

回答:


64

はい。次のscpような(セキュアコピー)を使用します。

scp [source file] [username]@[destination server]:.

もちろん括弧置き換え[source file][username]および[destination server]ローカルの設定に一致します。そのため、ファイルがcool_stuff.txtあり、リモートサーバーのユーザー名がsanjeev、宛先サーバーがのexample.com場合、コマンドは次のようになります。

scp cool_stuff.txt sanjeev@example.com:.

また、ソースはリモートにすることもできるため、上記の例の反対を行うためにこれを行うことができます。

scp sanjeev@example.com:cool_stuff.txt .

このコマンドは、リモートファイルcool_stuff.txtを現在のローカルディレクトリにコピーします。また、複数のファイルでこれを行う*場合は、通常のcpコマンドの場合と同様にワイルドカード()を使用します。

また、.は、直接のディレクトリパスを示しています。たとえば、コマンドを実行した瞬間にあなたがいるものや、移行先サーバーのリモートユーザーが持っている直接のパスなどです。ただし/this/path/right/here、ローカルからリモートの例のようにパスを指定することもできます。

scp cool_stuff.txt sanjeev@example.com:/this/path/right/here

または、リモートからローカルへの例:

scp sanjeev@example.com:cool_stuff.txt /this/path/right/here

リモートサーバーがSSHのみを許可し、SFTPのみを許可している場合、SFTPが最適です。ただしscp、コマンドラインから手動でSFTPプロセス全体を実行するのではなく、ファイルを放り投げたいだけの場合に非常に便利です。


13

リモートサーバーへのログインがsshキーを介して行われる場合、以下の-iフラグを使用してキーをサーバーに渡すことができます。

scp -i /path/to/.ssh/id_rsa path/to/file/myFiles.gz myServer.com:/folder/on/server

-i identity_file
公開鍵認証のID(秘密鍵)が読み取られるファイルを選択します。
このオプションは、ssh(1)に直接渡されます。


13

上の追加するにはジェイクの答えに、あなたは、位置だけではなく指定することができ.てURLの末尾にパスを追加することによって-toコピーを:

scp /path/to/file username@servername/ip:/destination/folder/

1
参考までに、リモートホストとパスの間のスペースはエラーなので、スペースなしでこれを記述する必要があります。(現在、この回答を編集することはできません)
Sliq
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.