Windowsでsftpを使う
ASCII.jp / 2024年12月15日 10時0分
UNIX由来のコマンドとしてftp(file transfer program、コマンド名は小文字で表記する)がある。これは、FTP(File Transfer Protocol。通常プロトコル名は大文字にする)を利用し、ファイルの転送をするものだ。
一般的には、ftpクライアントとftpデーモン(ftpdなど デーモンは、バックグラウンドで動作するプログラムでWindowsのサービスに相当する)をFTPで接続して操作する。ファイルシステムは、ftpサーバー側でアクセスするため、クライアントと異なるファイルシステム、たとえば、WindowsとLinuxなどの間でもファイル転送が正しくできる。
sftp(secure file transfer program)は、SSHが作るクライアントサーバー間の暗号化通信経路を使って、SFTP(Secure File Transfer Protocol)を動かす。
sftpコマンドは、UNIXのftpを参考にしているため、ほぼ似たコマンド体系を持つ。このため、ftpに慣れたユーザーなら利用に戸惑うことはないだろう。
SSHでは、当初からscp(secure cp)コマンドが搭載されていた。scpは、UNIXのファイルコピーコマンドであるcpをSSHで暗号化したものだ。ただし、相手はSSHサーバーになる。ローカル内でのscp利用は無意味である。
以下の表は、sftpの(サブ)コマンドを分類したもの。
sftp/ftpは、起動したのち、サブコマンドを使ってファイル転送操作をする。ただし、ファイルにコマンドを並べた「マクロ」を使うこともできる。ここでは、主要なコマンドのみ解説する。サブコマンドは、大きく、sftpコマンド、ファイル転送コマンド、リモートファイルシステム操作、ローカルファイルシステム操作の4つに分類できる。
SFTPの基本的な使い方
通常は、sftpコマンドを起動したら、サブコマンドを使って、ファイル転送をする。この操作は、利用できるコマンドがsftpのものに限定されるが、基本的には、bashなどのシェル上でのファイル操作と変わらない。
sftp内では、ローカル側に対するファイル関連サブコマンド(llsやlcdなど)と、リモート側に対するサブコマンド(lsやcdなど)がある。基本的には、ローカル用サブコマンドは、小文字のL(“l~”)で始まり、リモート側のコマンドには小文字のLは付かない。イメージ的には、リモート側でファイル操作をしており、ローカル側の操作が特別扱いされている。
なお、ローカル側での操作は、シェルに抜けることができる「シェルエスケープ」機能がある。これにより、ローカル側で、普通にコマンドが利用でき、たとえば、転送前にファイルの整形するなどの操作も可能だ。
転送は、put(ローカルファイルをアップロード)、get(リモートファイルのダウンロード)コマンドを使う。標準では、サブディレクトリやその中のファイルを含めたディレクトリ構造を転送しない。ディレクトリ構造を転送したい場合には「-R」オプションを指定する。また、-pフラグを指定することで、ファイルのパーミッションと最終更新日時もコピーされる。
-fフラグを使うことで、ファイルの転送後にfsyncコマンド(ファイルシステムの更新)もしくは同等の機能が起動される。一般にファイルシステム処理は非同期になされるため、ファイルの転送直後のファイル関連の処理(たとえば、lsコマンドや転送したスクリプトの実行など)では、ファイルシステムが更新されておらず、旧ファイルへのアクセスになってしまうことがある。
fsyncは、非同期で未実行となっている処理を起動し、ファイルシステムを最新状態にする。なお、何らかの原因でput/getコマンドが中断されたとき、reput/regetコマンドで、再開させられる。
sftpを起動する
sftpコマンド自体に指定する主なオプションを以下の表に示す。
オプションは、IPv4やIPv6利用の強制やマクロファイルの指定などがある。接続先は、SSHと同じく「ユーザー@サーバー」で指定でき、「-A」オプションを使うことで、ssh-agentを使ってログインできる。このあたりは、sshクライアントと同じ。また、いくつかのオプションは、引数がsshクライアントに直接渡される。
また、リモート側のファイルパスなとが明らかであれば、scpコマンドでファイルが転送できる。慣れているなら、こちらの方がコマンド1行で済むため、効率がいい。前述のように、scpコマンドはsftpを利用して実装されているため、セキュリティ的にも問題はない。
scpコマンドは、
scp␣[オプション]␣ソースファイル␣ターゲットファイル
とする。ソースファイル、ターゲットは、以下の形式で指定する。
[<ユーザー名>@]<ホスト名>:[<ファイルパス>]
また、scpコマンドのオプションは、以下の表に示す。
scpはデフォルトでは、SFTPの機能を利用して動作するため、多くのオプションが共通になっている。ただし、古いscpプロトコルを使うこともできる。これは、古いマシンなどで新しいバージョンのsshが利用できない場合などに利用する。
sshで接続できるホストなら、sftp/scpが必ず利用できる。コマンドラインで実行するため、エクスプローラーなどGUIでリモートファイルシステムをアクセスするよりも高速にファイル転送できる。
準備としてはsshで接続できるようにしておくだけだ。事前に試しておけば、何かあったときに、高速にファイルコピーができ、助かることがある。
この記事に関連するニュース
-
窓辺の小石 第195回 オデッサ・ファイル
マイナビニュース / 2024年12月20日 14時37分
-
声でiPhoneを操作できる iOS 18の「ボーカルショートカット」を使う方法
ITmedia Mobile / 2024年12月14日 6時5分
-
ネットワーク転送機能を追加し、より大容量の内蔵HDDを搭載したメディカルビデオレコーダー『UR-4MD-SE』を発売
PR TIMES / 2024年12月4日 14時45分
-
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた
ASCII.jp / 2024年11月24日 10時0分
-
窓辺の小石 第193回 チルダの伝説
マイナビニュース / 2024年11月22日 14時53分
ランキング
-
1「mixi2」なぜ登場? ブラウザ版、広告や有料サービスは? 10の疑問を直撃してみた
ITmedia Mobile / 2024年12月20日 18時16分
-
2携帯電話番号に「060」を追加 2026年7月以降、順次運用へ
ITmedia Mobile / 2024年12月20日 15時27分
-
3「博物館行きでもおかしくない」 ハードオフ店舗に入荷した“33万円商品”に思わず仰天 「これは凄い!!」
ねとらぼ / 2024年12月20日 8時0分
-
4東京都の最大10%還元、12月24日で終了 3日前倒しの理由は「予算額に達する見込みのため」
ITmedia Mobile / 2024年12月20日 17時33分
-
5「Core Ultra 200Sプロセッサ」のパフォーマンスが安定しない? Intelが原因と対策を公表
ITmedia PC USER / 2024年12月20日 12時30分
記事ミッション中・・・
記事にリアクションする
記事ミッション中・・・
記事にリアクションする
エラーが発生しました
ページを再読み込みして
ください