web-dev-qa-db-ja.com

リモートホストからローカルマシンに(scpを使用して)コピーしようとすると「そのようなファイルまたはディレクトリはありません」というエラー

Scpコマンドを使用して、リモートホストからローカルマシンのデスクトップ(/ Users/username/Desktop)にファイル(/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.Zip)をコピーしようとしています。

これを行うには、MacでiTermを実行し、次のコマンドを使用します。

scp -r [email protected]:/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.Zip /Users/username/Desktop/

(このコマンドを実行しようとしたときに、リモートホストにssh経由でログインしていることにも注意してください。)

コマンドを実行すると、[email protected]のパスワードを入力するように求められ(それを行います)、次のエラーメッセージが表示されます。

/ Users/username/Desktop:そのようなファイルやディレクトリはありません

同様に、scpを使用してファイルをリモートホストにコピーできませんでした。

この問題に関するヘルプは高く評価されています。コマンドラインとsshの使用にまったく慣れていないので、簡単で完全な説明が得られることを願っています。

9
K. Claesson

scpでは、コピーを作成するためにリモートコンピューターにSSHで接続する必要はありません(これが現在、コマンドで問題が発生している場所です)。

scpは基本的にプッシュまたはプル方式で機能します。ローカルPCからリモートにファイル/フォルダーをプッシュできます。このメソッドのコマンド構文は次のとおりです。

scp /folderpath/tofile/file.txt user@remotehost:/folderpath/tocopyfileto/

userremotehostのパスワードを要求するプロンプトが表示されます。

リモートPCからローカルPCにファイル/フォルダーをプルすることもできます。このメソッドのコマンド構文は次のとおりです。

scp user@remotehost:/folderpath/tofile/file.txt /folderpath/tolocalfolder/

userremotehostへのパスワードも要求されます。

上記のコマンドで実行していた問題は、リモートホストからファイルを取得するためにscpコマンドのデータプル構文を使用していたことですが、実行中にそのリモートホストにSSH接続されていました。

このコマンドを実行する正しい方法は、ローカルマシンから実行することです

scp -P 2222 [email protected]:/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.Zip /Users/username/Desktop/

**元のコマンドから余分な-rを削除したことに注意してください。これはエラーをスローするものではありませんが、あなたのケースでは必要ないというだけです。 scp-rオプションは、フォルダーとそのすべての内容を再帰的にコピーするときに使用されます。あなたの場合、あなたは単にファイルをコピーしていたので、それは必要ではありませんでした。

** -P 2222も追加しました。これは、標準のポート22の代わりにポート2222を使用する必要があるとのその後のコメントからです。

9
n8te