PuTTYまたはSSHを使用してローカルファイルをサーバーにアップロードしようとしていますが、アップロードできません。
FTPなどを使わずにローカルからLinux端末からサーバーへファイルをアップロードする直接的な方法はありますか?
もちろんです。次のように scp
(安全なコピー)を使用します。
scp [source file] [username]@[destination server]:.
もちろん、括弧で囲まれた[source file]
、[username]
、および[destination server]
をあなたのローカル設定に合うように置き換えてください。したがって、ファイルがcool_stuff.txt
で、リモートサーバー上のユーザー名がsanjeev
、宛先サーバーがexample.com
の場合、コマンドは次のようになります。
scp cool_stuff.txt [email protected]:.
また、ソースはリモートでもかまいませんので、上記の例とは反対にこれを実行できます。
scp [email protected]:cool_stuff.txt .
そのコマンドはリモートファイルcool_stuff.txt
をあなたがいるどんなローカルディレクトリにもコピーするでしょう。そしてもしあなたが複数のファイルを使ってこれをしているなら、通常のcp
コマンドのようにワイルドカード(*
)を使ってください。
また、.
はただちにディレクトリパスを示します。コマンドを実行した瞬間に自分が正しいもの、または移行先サーバーのリモートユーザーが持っている直接パスなど。しかし、ローカルからリモートへの例で/this/path/right/here
のようなパスを指定することもできます。
scp cool_stuff.txt [email protected]:/this/path/right/here
あるいはここからリモートへローカルの例:
scp [email protected]:cool_stuff.txt /this/path/right/here
リモートサーバがSSHを許可せず、SFTPのみを許可しない場合は、SFTPを使用します。しかし、scp
は、ファイルを投げるだけで、コマンドラインから手動でSFTPプロセス全体を実行したくない場合に非常に便利です。
Jakeの回答 を追加するには、URLの末尾にパスを追加してコピーする場所(.
の代わりに)を指定します。
scp /path/to/file username@servername/ip:/destination/folder/
リモートサーバーへのログインが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)に渡されます。