MENU
やすひら
やすひらと申します。
長靴を履いたタヌキ(ITエンジニア)です。
モノ作りの楽しさを発信中。
X(旧Twitter)のフォローもお願いします。

[Linuxコマンド]sftpコマンドの概要と使い方

sftpコマンドは遠隔マシンへのファイル転送を暗号化技術を用いて行うコマンドです。

やすひら

sftpコマンドの概要と使用方法を紹介します

この記事でわかること
  • sftpコマンドの概要
  • sftpコマンドの使い方
目次

コマンド概要

sftpでは指定したアドレスのマシンへファイル転送するコマンドです。
sftpでの通信は暗号化されるため、セキュアなファイル転送が可能です。

コマンドオプション

コマンドオプションを紹介します。

コマンドオプション意味
-i認証鍵指定
-oportポート番号指定
-bバッチファイル指定
-Fssh設定ファイル指定

コマンドの使い方

sftpコマンドの使い方は、以下のステップで実行します。

STEP
sftpサーバーへ接続

ファイル転送したいサーバーに接続します。

STEP
sftpサーバーを遠隔操作

サーバーと遠隔操作して、ファイルを送信/受信します。

STEP
sftpサーバーの接続を解除

ファイル転送が完了したら、サーバーとの接続を切断します。

sftpサーバーへ接続

sftpコマンドでsftpサーバーへ接続します。

コマンド形式

sftp [ユーザー名]@[IPアドレス]

コマンド実行例

$ sftp user@111.111.111.111
user@111.111.111.111's password: 
Connected to 111.111.111.111.
sftp> 

IPアドレス111.111.111.111のsftpサーバーへ接続し、ユーザー名/パスワードを入力し、ログインしています。

sftpサーバーへポート番号指定で接続

sftpサーバーへポート番号指定で接続します。

コマンド形式

sftp -oport=[ポート番号] [ユーザー名]@[IPアドレス]

コマンド実行例

$ sftp -oport=22 user@111.111.111.111
user@111.111.111.111's password: 
Connected to 111.111.111.111.
sftp> 

ポート番号指定でログインできました。

sftpサーバーへ鍵認証で接続

sftpサーバーへ鍵認証で接続します。

コマンド形式

sftp -i [認証鍵] [ユーザー名]@[IPアドレス]

コマンド実行例

$ sftp -i ~/.ssh/id_rsa user@111.111.111.111
Connected to 111.111.111.111.
sftp> 

鍵認証でログインできました。

sftpサーバーを遠隔操作

sftpサーバーへログインできたら遠隔操作することが可能です。
ログインしたユーザーの権限に依存しますが、許可されている操作を実行できます。(コマンド実行等)
sftpコマンドの対話型プロンプトでは、以下の操作を行うことも可能です。

コマンド意味
getファイルを受信する
putファイルを送信する
mget複数ファイルを受信する
mput複数ファイルを送信する

コマンド実行例

$ sftp user@111.111.111.111
user@111.111.111.111's password: 
Connected to 111.111.111.111.
sftp> ls
hogehoge.txt
sftp> get hogehoge.txt
Fetching /home/user/hogehoge.txt to hogehoge.txt
hogehoge.txt                                  100% 7000   245.4KB/s   00:00    
sftp> bye

遠隔操作でファイルを送受信できます。

sftpサーバーの接続を解除

sftpコマンドでsftpサーバーとの接続を解除します。

コマンド意味
exitsftpコマンドを終了する
quitsftpサーバーとの接続を解除する
byesftpサーバーとの接続を解除する

コマンド実行例

$ sftp user@111.111.111.111
user@111.111.111.111's password: 
Connected to 111.111.111.111.
sftp> quit
$ sftp user@111.111.111.111
user@111.111.111.111's password: 
Connected to 111.111.111.111.
sftp> exit
yasuhira@dsp000:~$ sftp user@111.111.111.111
user@111.111.111.111's password: 
Connected to 111.111.111.111.
sftp> bye

サーバーとの接続を解除できました。

バッチファイルを使用してファイル転送

バッチファイルを使用してsftpコマンドでファイル転送します。
sftpにおけるバッチファイルとは、対話モードで実行したい制御内容を記述したものです。
標準入力を行う代わりに、バッチファイルが自動入力します。

コマンド形式

sftp -b [バッチファイル名] [ユーザー名]@[IPアドレス]

コマンド実行例

$ cat linux-command-sftp.bat
get hogehoge.txt
quit

$ sftp -i ~/.ssh/id_rsa -b linux-command-sftp.bat user@111.111.111.111
sftp> get hogehoge.txt
sftp> quit

バッチファイル名指定で、IPアドレス111.111.111.111のsftpサーバーへ接続し、ユーザー名/パスワードを入力し、ファイル転送しています。
対話モードで実行されるコマンドは、バッチファイルに定義したコマンドリストが実行されています。

sftpコマンドのセキュリティ

sftpコマンドは暗号化されているため、セキュアなファイル転送が可能です。
クライアント-サーバー間の通信を第3者に盗聴されても、通信内容が暗号化されているため、ユーザー名/パスワードも含めて傍受される可能性が低くなります。

sftpのログイン方法はパスワード認証と鍵認証がありますが、鍵認証の方がキーとなる文字列が多いため、よりセキュアです。
パスワード認証は、ブルートフォース攻撃等で突破されてしまう危険性があるため、鍵認証でのログインを行い、パスワード認証を非許容に設定するとセキュリティが向上します。

sshの標準ポートは22ですが、22以外に設定することも可能です。
悪意ある第3者は基本的には標準ポートから設定変更していないサーバーを狙うことが予想できます。
22以外の任意のポートをsshのポートとして、悪意ある第3者からのログインを回避できる可能性が高まります。

まとめ

sftpコマンドの概要と使い方を紹介しました。

sftpコマンドは
  • セキュアなファイル転送ができる
  • 対話型で遠隔操作ができる
  • バッチファイルで遠隔操作ができる

ファイル転送は、ftpコマンドでも可能ですが、セキュリティ観点で、暗号化されたsftpコマンドでの転送を推奨します。

  • URLをコピーしました!
目次