web-dev-qa-db-ja.com

LinuxサーバからWindowsクライアントへSCPする方法

私はPuTTYを使ってLinuxマシンにSSHで接続していて、ファイルをどこかに(どこでも)自分のローカルマシンにコピーしようとしている。 IfigureSCPはその仕事の最良の候補ですが、解決策がうまくいく限り、本当に気にしないでください。

必要なファイルを含むディレクトリ(app.war)にcdを入力して、次のように入力します。

scp app.war ./

私は両方とも役に立ちませんでした:

scp app.war ./C:/Users/myUser/
scp app.war ./Users/myUser/

SCPはクライアント/サーバーツールであり、私のWindowsマシンにはクライアントが必要だと私は考えていました。

間違った構文を使っているだけですか。それとも私はオフベースの方法ですか?もしそうなら、私はどんな選択肢がありますか?前もって感謝します!

18
pnongrata

あなたがあなたのWindowsにファイルをコピーして戻すためにあなたはあなたのWindows上で走るSSHデーモン/サービスを必要とします、代わりにこのツールを使うほうがずっと簡単です大好きです!

WinSCP :: Windows用の無料のSFTPおよびFTPクライアント

19
alexus

あなたは正しいです。 SSHDは、ホスト上で動作するSSHサーバーサービスです。 SSHクライアント(PuTTYなど)、SCPクライアント、およびSFTPクライアントからの接続を受け入れます。

pscpは、 PuTTY がホストされているのと同じWebサイトからダウンロードできます。

Windowsマシンからは、次のようなコマンドを実行します。

pscp.exe [email protected]:/path/to/app.war c:\tmp

9
George M

ファイルをWindowsマシンにSCPするには、Windows上にSSH/SCPサーバーが必要です。

デフォルトではWindowsにSSH/SCPサポートはありません。 Windows用のMicrosoftビルド OpenSSHをインストールすることができますリリースとダウンロード )。 Windows 10バージョン1803以降ではオプション機能として利用可能です。 Windowsの古いバージョンに手動でインストールすることもできます。

私はOpenSSHのこのMicrosoftビルドを使ってWindows上に SSH/SFTPサーバーをセットアップするためのガイドを用意しました

も参照してください。IIS SFTPはWindowsでネイティブにサポートされていますか?


WindowsマシンからLinuxサーバーにSSH接続するときに、LinuxサーバーからWindowsサーバーにファイルをアップロードするのではなく、実際にはLinuxサーバーからWindowsサーバーにファイルをダウンロードすることができます。

あなたがWindowsからLinuxへのSSHアクセスを持っているのであれば、あなたもSCPアクセスを持っています(あるいはもっと良いSFTPアクセス)。

利用可能な任意のSCP/SFTPクライアントを使用してください。

WinSCP SFTP/SCPクライアント を使用できます。これには GUIコマンドラインインターフェイス の両方があります。

もう1つの選択肢はPuTTYツールセットです。これには pscpコマンドラインツール が含まれ、OpenSSHのscpコマンドに似た構文が使用されます。

(私はWinSCPの作者です)

2
Martin Prikryl

Windows 10にOpenSSHが組み込まれました。 https://docs.Microsoft.com/ja-jp/windows-server/administration/openssh/openssh_install_firstuse

管理コマンドを取得する

Open PowerShell as an Administrator.

利用可能なバージョンを確認する

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

クライアントをインストールする

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

サーバーをインストールする

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

サーバーを起動して起動時に有効にする

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'

WindowsのIPアドレスを探す

ipconfig

リモート(Linux)マシンで、IPアドレスを見つけます。

ifconfig

公開SSH鍵を作成する

ssh-keygen.exe

常にパスワードを入力する必要がないように、ローカル(Windows)からリモート(Linux)マシンに公開鍵をコピーします。

Ssh-copy-idは現在Windowsでは利用できません。

cat C:\Users\YOU/.ssh/id_rsa.pub | ssh USER@REMOTE_IP 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

お使いのLinuxマシンで同じことをしてください(注意、ssh-copy-idは機能しません)。

ssh-keygen # if needed
cat ~/.ssh/id_rsa.pub | ssh USER@WINDOWS_IP 'mkdir -p ~/.ssh && type con >> C:/Users/YOU/.ssh/authorized_keys'
  • 上記の方法は私にはうまくいきませんでしたので、私は手動で公開鍵をSCPし、それをC:/Users/YOU/.ssh/authorized_keysファイルに貼り付けました。

  • それでもまだうまくいきませんでしたので、sshd_configファイルを修正しなければなりませんでした。

    • 管理者としてメモ帳を開きます

    • %programdata%\ ssh\sshd_configを開きます。

    • 以下の行を追加してください。

        Match User YOU
             AuthorizedKeysFile C:/Users/YOU/.ssh/authorized_keys
  • リブート

まだ持っていない場合は、Windowsでパスワードを作成します。

System Settings...Sign-in options

- なお、Windowsのログイン画面を無効にするには、a)[サインインを要求する]オプションを[しない]に設定し、[netplwiz]コマンドを使用して[ユーザはパスワードを入力してください]チェックボックスをオフにします。

これで、LinuxマシンからSSHまたはSCPできるようになります。

scp FILE WINDOWS_IP:C:/Users/YOU/Desktop
0
ishmael