Linuxコマンド辞典 sftpコマンド(ネットワーク)

SSHで通信を暗号化してファイルを転送する「sftp」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

概要・使用方法

書式

$ sftp [オプション] ホスト名
$ sftp [ユーザー名@]ホスト名[:ファイル名・・・]
$ sftp [ユーザー名@]ホスト名[:ディレクトリ名]
$ sftp -b ファイル名 [ユーザー名@]ホスト名

SSHの通信暗号化を利用し、ftpをシュミレートしたファイル転送を行うことができます。

対話的に利用できるサブコマンド

サブコマンド説明
bye, exitsftpを終了する
cd パスリモートホスト側でカレントディレクトリを変更する
get ファイル名指定したファイルをダウンロードする
helpヘルプを表示する
lcdローカルホスト側でカレントディレクトリを変更する
llsローカルホスト側でカレントディレクトリのファイルを一覧表示する
lsリモートホスト側でカレントディレクトリのファイルを一覧表示する
lpwdローカルホスト側でカレントディレクトリのパスを表示する
pwdリモートホスト側でカレントディレクトリのパスを表示する
put ファイル名指定したファイルをアップロードする
! コマンドローカルホストのシェルでコマンドを実行する

オプション

-b バッチファイル名標準入力の代わりに指定したバッチファイルに記述されたコマンドを読み込む
-F SSH設定ファイル名利用するSSH設定ファイルを指定する
-CSSHの圧縮転送を利用する
-rアップロード/ダウンロードの際に再帰的に処理する
-i 秘密鍵公開鍵認証で利用する秘密鍵を指定する
-P ポート番号サーバのポート番号を指定する

SSH上で通信を暗号化してファイルを転送する

$ sftp ユーザー名@IPアドレス:ディレクトリ or ファイル名

実行結果

[rin@localhost ~]$ sftp rin@192.168.0.102:test.txt
rin@192.168.0.102's password: 
Connected to 192.168.0.102.
Fetching /home/rin/test.txt to test.txt
/home/rin/test.txt                              0%    0     0.0KB/s   --:-- ETA
[rin@localhost ~]$ 

バッチファイルを指定してSSH上で通信を暗号化してファイルを転送する

実行結果

$ cat sftp.bat  #<ftpコマンドを記述したバッチファイルを用意する
get test.txt
quit
$ sftp -b sftp.bat 192.168.0.10 #<バッチファイルを指定する
rin@192.168.0.10's password:    #<パスワードを入力する
sftp> get test.txt              #ファイルを終了する
sftp> quit                      #終了する