SSH を使用してファイルを転送できますか?

SSH を使用してファイルを転送できますか?

使っていますパテWindows 7 で学校のコンピュータ ラボに SSH 接続します。SSH を使用して、Windows マシンから学校のマシンのユーザーにファイルを転送できますか?

答え1

putty ダウンロード ページから PSCP ツールを使用します。

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

PSCP は、ssh コマンドを介した cp (コピー) である scp の putty バージョンです。

PSCP を Windows コンピューターにインストールする必要があります (ダウンロードするだけで、実際にはインストール プロセスはありません。パッケージ ファイル セクションには、pscp.exe が既に含まれています)。学校のサーバーには何もインストールする必要はありません。PSCP と scp はどちらも接続に ssh を使用します。

コメントからの使用法に関する質問に答えます:

コンピュータからリモート サーバーにアップロードするには:

c:\pscp c:\some\path\to\a\file.txt user@remote:\home\user\some\path

これにより、ファイル file.txt がサーバー上の指定されたディレクトリにアップロードされます。宛先パスの最後の部分がディレクトリでない場合は、新しいファイル名になります。別の名前でファイルをアップロードするには、次のようにします。

c:\pscp c:\some\path\to\a\file.txt user@remote:\home\user\some\path\newname.txt

リモート サーバーからコンピューターにファイルをダウンロードするには:

c:\pscp user@remote:\home\user\some\file.txt c:\some\path\to\a\

または

c:\pscp user@remote:\home\user\some\file.txt c:\some\path\to\a\newfile.txt

または

c:\pscp user@remote:\home\user\some\file.txt .

最後にドットが 1 つあります。これにより、指定されたファイルが現在のディレクトリにダウンロードされます。

コメントが下の方にあるので、興味があれば、これらすべてを GUI で提供する WinSCP が存在することもここで指摘しておきます。http://winscp.net/eng/download.php

答え2

Windows PowerShell を使用できます (実際には OpenSSH コマンドであり、どの UNIX OS でも使用できます)。

scp -P <non-default target ssh port> "<source file>" <username>@<hostname/address>:<destination path>

-Psshがデフォルトポート(22)で開かれている場合はフラグを省略できます。

ローカルパスとリモートパスの場所を入れ替えて、リモートホストからファイルをコピーする

例えば:

  • SSH経由でファイル「ps.key」をコピーしています
  • ローカルOSはWindows 10です
  • リモートアドレスは 192.168.88.242 で、ssh (デーモン) はポート 1688 で動作します。
  • リモートユーザー名は「nick」です

指示:

ローカル(win)->リモート(unix):

scp -P 1688 "D:\MEGA\ps.key" [email protected]:/home/nick/ps.key

リモート->ローカル (リモートホストからコピー):

scp -P 1688 [email protected]:/home/nick/ps.key "D:\MEGA\ps.key"

この後、ターゲット キーのフィンガープリントを確認し (以前に PowerShell 経由でこのホストに接続したことがない場合)、リモート ホストで自分自身を認証する必要があります (ssh-agent を使用していない場合は、ユーザー パスワードまたは ssh キー パスワードを入力します)。

OpenSSHが組み込まれているため、インストールなしでもWin10で動作するはずです。

答え3

LINUX/UNIXサーバーと通信するにはスラッシュ(/)を使用する必要があるかもしれません

c:\pscp c:\some\path\to\a\file.txt user@remote:/home/user/some/path

答え4

たくさんのファイルを次のようにまとめることができますtar:

tar -cz . | ssh me@school -- 'tar -C/path/to/target/dir -xz'

...これにより、ローカル マシンの現在のディレクトリにあるすべてのファイルが再帰的に圧縮され、ターゲット パスにストリームされると同時に、リモート マシン上のストリームが解凍され、展開されます。

stdout に書き込むものに対しても同様のことを行うことができます。cat明らかな選択肢は次のとおりです。

cat ./localfile | ssh user@remote 'cat >./remotefile'

関連情報