scpを使用して、ローカルディレクトリXからリモートディレクトリYにファイルを転送します

ここで他の質問や、のさまざまな「scpの使用法」チュートリアルを見て回りました。インターネットですが、何が問題なのかを分類できません。

Linux Mintを使用していて、 scp は機能します。

ファイル file.ext (私のコンピューター上)ディレクトリ / home / name / dir /

に接続します ssh を使用するリモートマシン:

ssh -p 2222 username@domain 

パスワードを尋ねられ、シェルが表示されます:

username@domain ~ $ 

コマンドを発行すると(sshを実行する前はローカルディレクトリ

/ home / name / dir ):

scp -r -P 2222 file.ext username@domain 

出力は:

cp: cannot stat ‘file.ext’: No such file or directory 

file.extの代わりに完全なパスを書き込んだ場合も同じ結果です

scp -r -P 2222 /home/name/dir/file.ext username@domain 

また、サーバー管理者は、ファイルをリモートホームディレクトリにアップロードするように指示しました(ルートの代わりに)次のようになります:

scp -r -P 2222 file.ext username@domain:~/ 

しかし、それを実行して「Enter」を押すと、シェルがさらなる入力を待っているかのように何も起こりません。

問題の概要:

  • cp:そのようなファイルやディレクトリはありません
  • シェルが〜/
  • ulに「スタック」しています>

    何か提案はありますか?

    コメント

    • it ‘は、問題が間違ったマシン上にあることにのみ関連しています…各コマンドの前に、実行しているホストを付けてください。例えばlocaluser@machineA: ssh -p 2222 username@domain(machineAでlocaluserとしてsshコマンドを実行していることを示すため)
    • scpを使用する場合、 リモート側には常にコロンが含まれている必要があります(例:remotehost:/tmp)。そうでない場合は、通常のコピー(scp /tmp/foo.txt example.com/tmp/foo.txtをローカルファイルにコピーしますexample.com
    • -rフラグ。これは単一ファイルのコピーには必要ないため(再帰的にディレクトリをコピーするために使用される’)
    • ssheセッション内でscpコマンドを発行していますか?ローカルマシンを使用している場合は意味があります。

回答

コマンド。 sshはまったく必要ありません:

dragonmnl@local $ scp -P 2222 file.ext username@domain:~/ 

 -r Recursively copy entire directories. 

すでにリモートマシンにログインしていて、ローカルからコピーする場合は、次のようにする必要があります。ローカルマシンがインターネット経由でアクセス可能であり、sshが設定されていることを確認してください。私はこれがあなたが求めているものではないと思いますが、もしそうなら、リモートからこれを実行してください:

username@domain $ scp dragonmnl@local:/path/to/file.ext ~/ 

コメント

  • ありがとうございます。問題は、sshセッション内でscpを実行しようとしていたことでした。現在は機能しています!

回答

リモートマシンとローカルマシン間でファイルをアップロード/ダウンロードする2つの方法を提供します(Mac Airを使用します):

この場合、11.jpeg

  1. サービス上のファイルをローカルディレクトリにコピーする:このコマンドを実行するには、sshにいるときではなく、ローカルのbashターミナルにいる必要があります!

    scp username@domain:/home/xxx/xxx/11.jpeg /Users/username/Desktop/ 

    ローカルディレクトリのファイルをコピーリモートサービス:ローカルbashターミナルにいる必要があります

    scp /Users/username/Desktop/11.jpeg username@domain:/home/xxx/xxx 
  2. SSHにログインするときに同じ意図を実現するには、最初に「」を設定する必要があります。システム設定>共有>リモートログイン>すべてのユーザー( “すべてのユーザー”に設定する必要がありますが、この状況では機能します)」Macは”このコンピューターにリモートでログインするには、次のように入力します。

    ssh username@xxxxxx, then type in the command below: scp username@domain:/home/xxx/xxx/11.jpeg username@xxxxxx:/Users/username/Desktop/** 

上記のコマンドはファイルをダウンロードするためのものですsshにログインしているときにリモートからローカルに、ファイルをアップロードするときに2つのパスを変更するだけです。

コメント

  • 最後に、Filezillaはおそらく日常業務で最も便利なものだと思います~~

回答

scpコマンドを使用

フォルダを転送する場合は、最初にzipして、後でunzipできます。

コンピューターから、次のコマンドを実行します。

$ scp your_path_to_the_file/the_file [email protected]:~/ 

ここでは、rootがアカウントで、10.145.198.100がアカウントです。リモートサーバーのIPアドレス。the_fileをリモートの~/フォルダーにコピーします。

ファイルの解凍:

$ unzip the_zip_file.zip -d destination_folder 

コメント

  • なぜrootリモートマシンでSSHアクセスさえありますか?その’はかなり安全ではありません。通常の使用法を使用してから、sudoを使用してそのマシンでrootが実行する必要のあるすべてのことを実行することをお勧めします。

回答

リモートマシンでこのscpコマンドを実行している場合、file.extを「ローカル」ファイルとして検索します。リモートマシン上のdivid = “3fc9268a4d”>

リモートマシンからローカルマシンにファイルをコピーするには、scp -P 2222 username@domain:dir/file.ext localdir(例のように、file.extがリモートコンピューターの~/dirにあると仮定します) 。リモートマシンでscpを実行する場合は、「ローカル」と「リモート」を逆にします。

コメント

  • OPはローカルからリモートにコピーしたい。OP’のタイトルを参照してください。
  • おっと、あなただと思います’正解です。しかし、彼は’明らかに逆行しています…

回答

ほんの少しの貢献で、私のような初心者に役立つかもしれません。リモートディレクトリへのパスは次のように書く必要があります:username@domain:~/remote_directory

ここで強調したいのは、常にその:~/

回答

LinuxクライアントからLinuxサーバーにファイルをコピーするソリューション

  1. ps aux | grep sshd

  2. を使用して、サーバーでsshdが実行されているかどうかを確認します。 >そうでない場合は、sudo apt-get install openssh-server openssh-client https://www.tecmint.com/install-openssh-server-in-linux/

をインストールします

  • サーバーを再起動し、iv id = “a75d35a29c”を使用して、sshdが実行されていることを確認します。 >

  • 必要に応じて、/etc/ssh/sshd_configファイルを構成できますが、単純な構成では必要ありません

  • そのことを確認しますeポートはnetcatを使用して開いています:nc -v -z 127.0.0.1 22

  • クライアントからLinuxクライアントは次のようにscpを使用しますscp ~/filename.md [email protected]:~/folder/filename.md

  • ファイルがコピーされたことを確認するには、ssh [email protected]を使用して、パスワードを入力します。

  • LinuxクライアントからWindowsにファイルをコピーするソリューション

    1. SSHを実行するための複数のクライアントがあります次のようなWindows上のサーバー:

    2. 上記のサーバーのいずれかをインストールし、ポート22が開いていることを確認します

      netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=UDP localport=22 netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=UDP localport=22 
      netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=TCP localport=22 netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=TCP localport=22 
      netsh advfirewall set allprofiles state off 
    3. これらのサーバーの比較:

      BitviseSSHサーバー

      1. ネイティブのcmdプロンプト、powershellプロンプト、オートコンプリートにほぼ近いものを提供します

      2. 高度な使用法が必要な場合は、カスタマイズのための追加機能を提供します

      3. 単純なニーズのためのユーザーカスタマイズは0です。多くの時間を費やした後、2分以内に開始しましたMobaSSHOpenSSHを機能させようとしています。

      4. scpを使用してファイルをコピーするには使用:scp ~/filename.md [email protected]:/C/Users/username/filename.md

      5. 個人使用は無料、業務用は99ドル。非常に多くの機能と優れた統合により、価格はお金に見合う価値があります。

      MobaSSH:

      1. Linuxを提供しますlscpfindなどの単純なLinuxコマンドが含まれるWindows上のシェル。、work、MINGW64

      2. cmdおよび cmdまたはpowershell

      3. Unicodeのサポートが不十分です。エンコーディングが正しくありません。たとえば、Pythonインタプリタを起動しようとすると、クラッシュします。 ( https://stackoverflow.com/a/12834315/4752883 )を使用してエンコードを手動で変更する必要があります:chcp 65001 set PYTHONIOENCONDING=utf-8次にPythonプロンプトを起動する

      4. MobaSSHの優れている点は、非常にシンプルなユーザーインターフェイスとscpsshがうまく統合されています。したがって、単純な使用例で機能します

      5. LinuxクライアントからMobaSSHを実行しているWindowsサーバーにファイルをコピーするには: これは、MobaSSHがCygwinに基づいており、そのドライブが同じ方法でマップされているためですcygwin– sドライブがマップされます。

      https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ 、OpenSSHv6.7はすでにインストールされています。

      1. 非常にバグが多いため、大幅にカスタマイズする必要があります。

      2. コマンドの完了が機能しない

      3. 端末でカーソルを移動すると、空白が残ります

      4. Pythonが機能しない

      5. OpenSSHの新しいバージョンでは、改良されている可能性があります。さらに、MSはOpenSSHをオプション機能” https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/

    回答

    OSXを使用している場合…

    username @ local:/ file_directoryで実行しようとすると…

    次のエラーが発生しました:

    ssh: local: node name or service name not known 

    解決策

    Macで、ローカルのsshをセットアップするには、次の手順を実行する必要がありました。

    システム環境設定-> インターネット&ネットワーク-> 共有-> ENABLE リモートログイン

    これにより、username @ipアドレスが提供されました。

    回答

    今日もMACで同じ問題が発生しました。

    次のコマンドを入力します。

    scp /local-file-path/ /-remote-location-path/ 

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です