SSH を使用してローカル コンピューターからサーバーにフォルダーを正しくコピーするにはどうすればよいですか? scp コマンドがエラーになるのはなぜですか?

SSH を使用してローカル コンピューターからサーバーにフォルダーを正しくコピーするにはどうすればよいですか? scp コマンドがエラーになるのはなぜですか?

私はウェブサーバーにログインしていますパスワードというツールを使ってモバエクスターム(これは Putty のようなものですが、高度な機能を備えているため、それほど重要ではありません...)

私の問題は、ローカル コンピューター (Windows) からこのサーバー (Linux) の特定のディレクトリにディレクトリを送信したいということです。

だから私はSCP-10 ...次のようにコマンドを実行します。http://www.hypexr.org/linux_scp_help.php

私は次のようにしました:

-jailshell-4.1$ scp -r C:\Users\Andrea\Documents\Betrivius\candycane-0.9.6\candycane /home6/XXX/public_html

ssh: Could not resolve hostname C: Name or service not known

しかし、ご覧のとおり、エラーが発生します。

なぜですか? 何が足りないのでしょうか? この問題を解決するにはどうすればいいでしょうか?

ありがとう

答え1

おそらく、ローカルの MobaXterm シェル (つまり、Windows マシンのローカル) でこれを実行していると思われます。その場合、その環境に合わせて scp コマンド構文を更新する必要がありますが、構文はいずれにしても正しくありません。

MobaXterm は、マウントポイントを介してシェル内のローカル ドライブへのアクセスを提供します/drives/X。X は Windows のドライブ文字です。

さらに、環境に関係なく、scp の (簡略化された) 一般的な構文は次のとおりです。

SCPの使用法:

scp [[user@]host1:]/path[/filename] [[user@]host2:]/path/[filename]

最初のシーケンス ( [[user@]host1:]/path[/filename]) は「FROM」セクション、つまりコピーするファイルのソースです。2 番目は「TO」、つまりコピー先です。括弧はオプションの引数を示します。

これは実際には、標準の cp コマンドの ssh 対応バージョンです。前のセクションには:ssh 固有の情報が含まれ、その後のセクションには cp 操作に関する情報が含まれます。

ユーザー:

userデフォルトでは現在のローカル ユーザー名になります。ソースと宛先の両方でそれが正しいユーザー名である場合は省略できます。

ホスト:

hostデフォルトはローカル コンピュータ (localhost) です。したがって、ローカル マシンとの間でコピーする場合、および使用する localhost 上のユーザー名が現在のユーザーである場合は、ローカル ファイルに対してその引数を省略できます。

ファイルパス:

path/filenameデフォルトでは指定されたユーザーのホーム ディレクトリに設定され、必要に応じて省略できます。状況のように再帰コピーを実行する場合は、ファイル名を省略できます。その場合はパスのみを指定します。通常、完全なパスとファイル名は FROM セクションで指定され、パスのみが TO セクションで指定されます (デフォルトでは同じファイル名が保持されます)。

remoteuserユーザー名とリモート PC ホスト名としてと を使用していますremotePC。正しい名前に置き換えてください。

例の正しい構文:

 scp -r "/drives/C/Users/Andrea/Documents/Betrivius/candycane-0.9.6/candycane" remoteuser@remotePC:/home6/XXX/public_html

コマンドを使用するman scpか、このサイト追加の詳細(引数、その他の使用方法情報)については、こちらをご覧ください。

GUIオプション

あるいは、MobaXterm はグラフィカル ファイル ブラウザー (設定オプションに基づいて sftp または scp 上に構築) を提供し、ssh 経由でリモート ホストに接続しているときにドラッグ アンド ドロップによる双方向ファイル転送を可能にします。詳細はこちら

答え2

その Web サーバーが Windows マシンに直接接続する方法 (ポート 22 で SSH デーモンが実行され、ポートが転送される必要がある) がない限り、Windows 側から SCP を呼び出す必要があります。MobaXTerm は SSH クライアントですが、SCP が組み込まれているかどうかはわかりません (個人的には使用していません)。ただし、ここでの最善の解決策は、コマンド ライン クライアントでも GUI クライアントでも、SCP クライアントを使用することです。

Windows用のかなり人気のあるクライアントはウィンSCPWindows を使用せざるを得ないときに頼りになるクライアントです。

答え3

答える

scp コマンドがエラーになるのはなぜですか?

、エラーは

ssh: Could not resolve hostname C: Name or service not known

、そして使用されるコマンドは

scp -r C:\Users\Andrea\Documents\Betrivius\candycane-0.9.6\candycane /home6/XXX/public_html

私はこう言います:

構文がC:\Users\....間違っています。このコンテキストでは、パスを記述する方法が 2 つあります。

  1. foo/bar/...: は、fooパスから見えるディレクトリ (フォルダー) であることを意味します。これは、現在のパス ( pwd) またはパス環境変数 ( echo $PATH) にある可能性があります。

  2. /foo/bar/...fooファイル システムのルートに存在するディレクトリ (フォルダー) であることを意味します。

最初のオプションを使用したため (「C:」の前に「/」がないため)、シェルはC:パス内でを検索しますが、見つかりません。その結果、別の構文に一致しようとします: [user@]host1:/path/..../filename。この状況では、ssh は IP アドレスが見つからないためC:(ホスト名であると考えているためC:) 文句を言います。ホスト名に対応する IP アドレスを見つけることは、「ホスト名解決"; ここでこの解決は失敗するので、エラーを理解してください。

答え4

Windows では、次のコマンドが機能しました:- scp -r "Reqd.Folder name in quotes" username@remote_server:File path at server

scp -r "ABC" shivam@remote_server:/media/External/shivam。

実行する前に必要なフォルダがあるフォルダに移動する

関連情報