sftpコマンドは遠隔マシンへのファイル転送を暗号化技術を用いて行うコマンドです。
sftpコマンドの概要と使用方法を紹介します
- sftpコマンドの概要
- sftpコマンドの使い方
コマンド概要
sftpでは指定したアドレスのマシンへファイル転送するコマンドです。
sftpでの通信は暗号化されるため、セキュアなファイル転送が可能です。
コマンドオプション
コマンドオプションを紹介します。
コマンドオプション | 意味 |
---|---|
-i | 認証鍵指定 |
-oport | ポート番号指定 |
-b | バッチファイル指定 |
-F | ssh設定ファイル指定 |
コマンドの使い方
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>
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サーバーとの接続を解除します。
コマンド | 意味 |
---|---|
exit | sftpコマンドを終了する |
quit | sftpサーバーとの接続を解除する |
bye | sftpサーバーとの接続を解除する |
コマンド実行例
$ 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
sftpコマンドのセキュリティ
sftpコマンドは暗号化されているため、セキュアなファイル転送が可能です。
クライアント-サーバー間の通信を第3者に盗聴されても、通信内容が暗号化されているため、ユーザー名/パスワードも含めて傍受される可能性が低くなります。
sftpのログイン方法はパスワード認証と鍵認証がありますが、鍵認証の方がキーとなる文字列が多いため、よりセキュアです。
パスワード認証は、ブルートフォース攻撃等で突破されてしまう危険性があるため、鍵認証でのログインを行い、パスワード認証を非許容に設定するとセキュリティが向上します。
sshの標準ポートは22ですが、22以外に設定することも可能です。
悪意ある第3者は基本的には標準ポートから設定変更していないサーバーを狙うことが予想できます。
22以外の任意のポートをsshのポートとして、悪意ある第3者からのログインを回避できる可能性が高まります。
まとめ
sftpコマンドの概要と使い方を紹介しました。
- セキュアなファイル転送ができる
- 対話型で遠隔操作ができる
- バッチファイルで遠隔操作ができる
ファイル転送は、ftpコマンドでも可能ですが、セキュリティ観点で、暗号化されたsftpコマンドでの転送を推奨します。