Windows PowerShell(パワーシェル)を使ったSFTPファイル転送のやり方

ホームページの運営やサーバーの運用をしていると、FTPやSFTPを使ってファイルを扱うこともあります。
今回はSFTPのお話です。
SFTPを実行できるツールはいくつかありますが、実はWindows純正のWindows PowerShellを使うと、別のアプリケーションをインストールする必要がありません。Windows PowerShellはWindows ProでもHomeでも使うことができます。
私はWindows PowerShellを使ってWordPressサーバーへファイルをアップロードしたりしています。

この記事ではWindows PowerShellを使って、SFTP転送する方法を紹介します。

  • Tera Term等を使ってもうまくSFTP転送できない場合。
  • 他のソフトウェアをインストールしたくない場合に有効です。

この記事でできること

Windows PowerShellを使ってSFTPによるファイル転送ができる。


Windows PowerShellでSSH接続をするための準備

1.まずはWindowsでSSHの機能を有効にします。
“全ての設定(All Settings)” を開いて、


2. “アプリケーション(Apps)”>
“アプリケーションと機能(Apps&features)”>
“オプション機能(Optional features)”


3. “機能の追加(Add a feature)”>


4. “OpenSSH” と入力して検索
“OpenSSH クライアント(OpenSSH Client)” が検索されるので、”インストール” をクリック。


5. インストールが完了したら、PowerShellを開きます。
PowerShellは、Windowsスタートメニューの
“Windows PowerShell”フォルダー>
“Windows PowerShell” を右クリックして、”管理者として実行” をクリック。


Windows PowerShellでのコマンド入力

PowerShellが開いたら、サーバへ接続します。
sftp “SFTPユーザー名”@”ホスト名” と入力します。
例)
sftp user1@xxx.com
sftp user3@255.255.255.255

ポート番号はデフォルトで22番が使われます。ポート番号に指定がある場合は、ポート名のオプションをつけて、
sftp -P “ポート番号” “SFTPユーザー名”@”ホスト名”
※注意: “P”は大文字です。
例)
sftp -P 422 user1@xxx.com
sftp -P 222 user3@255.255.255.255

Enterを押すと、パスワードを求められます。ここでパスワードを入力します。
入力中は何も表示されませんが入力されています。確実に入力しましょう。
パスワード入力後、Enterを押すと、接続が完了します。


接続が完了したら目的のディレクトリまで移動します。
まず”ls”コマンドで現在のディレクトリのファイルリストを表示してみます。


次に”cd”コマンドで目的のディレクトリまで移動します。
“cd”コマンドでwordpressディレクトリへ移動しました。


ここで”ls”コマンドを打つと、wordpressディレクトリにあるファイルの一覧が表示されます。


目的のディレクトリまで移動したら
“put”コマンドで目的のファイルを転送します。
ここでは、デスクトップにある。”test.txt”ファイルをアップロードします。
アップロードが完了したら、”ls”コマンドを打つと転送した”test.txt”ファイルが表示されています。


作業が完了したら、”bye”コマンドで切断します。


SFTPでよく使うほかのコマンド

動作入力
接続sftp “SFTPユーザ名”@”サーバー名”
ポート指定-P
ディレクトリ変更cd “ディレクトリ名”
サーバーのファイル一覧表示ls
ファイルをサーバーへ転送put “ファイルパス”
フォルダをサーバーへ転送put -r “フォルダパス”
ファイルをローカルへ転送get “ファイルパス”
フォルダをローカルへ転送get -r “フォルダパス”
ファイルの削除rm “ファイルパス”
切断bye, quit, exitどれか

Tera Termで同じ作業をする場合

Tera Termではログイン操作がGUIでできます。
ホスト名: サーバー名
サービス: SSH
ポート: 22 または指定の番号


サーバー名とポート番号、サービスが正しいと、ログインのウィンドウが出てきます。
ここでSFTPのユーザ名とパスワードを入力してOK!

Tera Termのダウンロード


まとめ

Windows PowerShellはWindowsサーバーの管理をするツールというイメージがありますが、SSH接続を使うことでLinaxやネットワーク機器を操作することが可能です。
Tera Termを使っている方は多いと思いますが、Tera Termが使えない時のセカンドオピニオンとして覚えておくといいかもしれません。