【コマンドライン】暗号化データ転送[ sftp ]
コマンドラインでリモートマシンと暗号化データ転送を行うsftpコマンドについて解説します。
検証環境
sftpコマンド
sftpコマンドは“リモートマシンとSSHで暗号化されたネットワーク経路でデータ転送を行うコマンド”です。
sshコマンドと同じ認証方式を使用し、接続後は対話形式でコマンドを入力して、ファイル等の転送を行います。
基本書式
$ sftp [オプション] [ユーザー]@[リモートマシン]
オプション
主なオプションは次の通りです。
オプション | 内容 |
---|---|
-oPort="ポート番号" | 接続ポート番号の指定 |
-i 公開鍵パス | 公開鍵認証の利用 |
引数
ユーザー
ユーザー
はログインするユーザー名です。
リモートマシン
リモートマシン
はリモートマシンのIPまたはドメインです。
対話コマンド
主な対話コマンドをご紹介します。
コマンド | 内容 |
---|---|
cd パス | リモートマシンのカレントディレクトリを変更 |
lcd パス | ローカルマシンのカレントディレクトリを変更 |
ls パス | リモートマシンのディレクトリ内容を表示 |
lls パス | ローカルマシンのディレクトリ内容を表示 |
pwd | リモートマシンのカレントディレクトリパスを表示 |
lpwd | ローカルマシンのカレントディレクトリパスを表示 |
mkdir | パス リモートマシンにディレクトリを作成 |
lmkdir | パス ローカルマシンにディレクトリを作成 |
get パス | リモートマシンのファイルをローカルマシンにダウンロード(-rオプションでディレクトリを再帰的にダウンロード) |
put パス | ローカルマシンのファイルをリモートマシンにアップロード |
exit | ログアウト |
コマンドラインのcd、ls、mkdir、pwdと同様にオプションを使えます。
また、多数の対話コマンドがあるように思えますが、基本的にはリモートマシン操作は通常のコマンド入力、ローカルマシン操作は通常のコマンドの先頭にl
を付けるという規則性があります。
サンプル
ログイン(パスワード認証)
___ih_hl_start
$ sftp hacker@127.0.0.1
___ih_hl_end
ログイン(公開鍵認証)
___ih_hl_start
$ sftp -i public.key hacker@127.0.0.1
___ih_hl_end
ログイン(ポート指定)
___ih_hl_start
$ sftp -oPort="12345" hacker@127.0.0.1
___ih_hl_end
基本操作(cd / ls / pwd / mkdir)
___ih_hl_start
sftp> ls
___ih_hl_end
work
___ih_hl_start
sftp> cd work
sftp> pwd
___ih_hl_end
Remote working directory: /ITHACK/work
___ih_hl_start
sftp> mkdir uploads
sftp> lls
___ih_hl_end
work
___ih_hl_start
sftp> lcd work
sftp> lpwd
___ih_hl_end
Local working directory: /ITHACK/work
___ih_hl_start
sftp> lmkdir downloads
___ih_hl_end
ダウンロード
sftp> ls
content.txt
___ih_hl_start
sftp> get content.txt
___ih_hl_end
Fetching /ITHACK/work/content.txt to content.txt
content.txt 100% 60 0.1KB/s 00:00
sftp> lls
content.txt
ダウンロード(再帰)
sftp> ls -l
drwxr-xr-x 2 hacker guest 4096 Dec 18 23:42 test
___ih_hl_start
sftp> get -r test
___ih_hl_end
Fetching /ITHACK/work/test/ to test
Retrieving /ITHACK/work/test
testA.txt 100% 23 0.1KB/s 00:00
testB.txt 100% 23 0.1KB/s 00:00
testC.txt 100% 25 0.5KB/s 00:00
sftp> lls -l
drwxr-xr-x 5 hacker staff 160 12 19 04:42 test
アップロード
sftp> lls
memo.txt
___ih_hl_start
sftp> put memo.txt
___ih_hl_end
Uploading memo.txt to /ITHACK/work/uploads/memo.txt
memo.txt 100% 17 0.6KB/s 00:00
sftp> ls
memo.txt
ログアウト
___ih_hl_start
sftp> exit
___ih_hl_start
マニュアル
コマンドの仕様(主な処理やオプション・引数など)は環境により異なる場合がございます。
利用環境での仕様は『コマンドのマニュアルを表示する』manコマンド等で確認しましょう。