Linuxコマンド【 sftp 】安全なファイル転送を行う
当ページのリンクには広告が含まれています。
スポンサーリンク
sftpコマンドは、安全なファイル転送を行うコマンドです。
sftpコマンド
書式
sftp [オプション] ホスト名 [コマンド]
sftpコマンドは、ftpコマンドのように対話的なファイル転送をするプログラムで、SSHで暗号化された通信経路でファイル転送を行います。「sshコマンド」と同じ認証を利用するので、鍵認証も利用でき、安全にファイル転送が行えます。鍵の生成は「ssh-keygenコマンド」を参照してください。
cf. » scpコマンド
オプション
-b バッチファイル | バッチファイルに記述したコマンドでファイルを転送します。 |
-i 秘密鍵ファイル | 秘密鍵ファイル(identityファイル)を指定します。 |
-l 制限 | ファイル転送に使用する帯域を制限します。Kbit/sで指定します。 |
-o | ssh形式(ssh_config)のオプションを指定します。例えば、ポート番号は「sftp -oPort=24」で指定できます。 |
-1 | SSHのプロトコルバージョン1を使用します。 |
-2 | SSHのプロトコルバージョン2を使用します。 |
-4 | IPv4を使用します。 |
-6 | IPv6を使用します。 |
対話的にファイルを転送
クライアント(ユーザー:karuma)からVPS(リモートマシン、IPアドレス:aaa.bbb.ccc.ddd)にファイル(tmp1.txt)を転送(put)します。
$ sftp karuma@aaa.bbb.ccc.ddd ← aaa.bbb.ccc.dddにkarumaでログインします karuma@aaa.bbb.ccc.ddd's password: ← sshのパスワードを入力します Connected to aaa.bbb.ccc.ddd. sftp> put tmp1.txt ← クライアントからリモートマシンへtmp1.txtを転送します Uploading tmp1.txt to /home/karuma/tmp1.txt tmp1.txt 100% 26 0.0KB/s 00:00 sftp> quit ← sftpコマンドを終了します
VPS(リモートマシン:sftpserver)からクライアント(ユーザー:karuma)にファイル(tmp2.txt)を取得(get)します。
$ sftp karuma@sftpserver ← sftpserverにkarumaでログインします karuma@sftpserver's password: ← sshのパスワードを入力します Connected to sftpserver. sftp> get tmp2.txt ← リモートマシンからtmp2.txtを取得します Fetching /home/karuma/tmp2.txt to tmp2.txt /home/karuma/tmp2.txt 100% 25 0.0KB/s 00:00 sftp> quit ← sftpコマンドを終了します
sftpの対話的なコマンド一覧
bye | sftpの接続を閉じます。 |
cd パス名 | 指定したパス名に移動します。 |
exit | sftpの接続を閉じます。 |
get | リモートマシンからローカルマシンへファイルを取得します。 |
help | ヘルプを表示します。 |
lcd パス名 | 指定したパス名(ローカル)に移動します。 |
lmkdir パス名 | 指定したパス名のディレクトリをローカルに作成します。 |
lpwd | ローカル側の現在作業中のディレクトリを表示します。 |
mkdir パス名 | 指定したパス名のディレクトリをリモートマシンに作成します。 |
put | ローカルマシンからリモートマシンへファイルを転送します。 |
pwd | リモートマシン側の現在作業中のディレクトリを表示します。 |
quit | sftpの接続を閉じます。 |
バッチファイルでファイルを転送
バッチファイルでクライアントからVPS(リモートマシン、IPアドレス:aaa.bbb.ccc.ddd)へファイル転送します。
$ cat sftp.bat put tmp3.txt quit
$ sftp -b sftp.bat karuma@aaa.bbb.ccc.ddd karuma@aaa.bbb.ccc.ddd's password: sftp> put tmp3.txt Uploading tmp3.txt to /home/karuma/tmp3.txt sftp> quit
以下のように、うまくいかない場合。
$ sftp -b sftp.bat karuma@aaa.bbb.ccc.ddd Permission denied (publickey,password). Connection closed
-o オプションで明示的に「"batchmode no"」を指定しましょう。
$ sftp -o "batchmode no" -b sftp.bat karuma@aaa.bbb.ccc.ddd karuma@aaa.bbb.ccc.ddd's password: sftp> put tmp3.txt Uploading tmp3.txt to /home/karuma/tmp3.txt sftp> quit
バッチファイルをcronなどで自動化したい場合は、パスフレーズなしの公開鍵認証を利用しましょう。鍵の生成はssh-keygenコマンドを参照してください。
関連コマンド
ネットワーク の人気記事
- Linuxコマンド【 sftp 】安全なファイル転送を行う
- Linuxコマンド【 ssh 】リモートマシンにSSHでログインする
- Linuxコマンド【 traceroute 】ホストまでの経路を表示する
- Linuxコマンド【 arp 】ARPキャッシュを操作する
- Linuxコマンド【 ntpdate 】日付と時刻をNTPサーバーと同期する
- Linuxコマンド【 nslookup 】対話的にDNSサーバーへ問い合わせる
- Linuxコマンド【 ping 】ホストとの接続を確認する
- Linuxコマンド【 wget 】ファイルをダウンロードする
- Linuxコマンド【 ssh-keygen 】認証用の鍵を生成する
- コマンドリファレンス