概要
SFTP(SSH File Transfer Protocol)は、セキュリティが脆弱なFTPに代わるものとして開発されたプロトコルです。`sftp`コマンドはSSH接続を使用してすべてのデータとコマンドを暗号化するため、ユーザー名、パスワード、ファイルの内容などがネットワーク上で公開されるリスクがありません。FTPと同様に対話型モードをサポートしており、使い方も似ているため、FTPに慣れているユーザーでも簡単に使用できます。
主な特徴
sftpコマンドの主な特徴は以下の通りです。
- SSHに基づいてすべての通信を暗号化します。
- FTPに似た対話型コマンドインターフェースを提供します。
- 単一ポート(デフォルトは22番)を使用するため、ファイアウォール環境に有利です。
- ファイルアップロード(`put`)、ダウンロード(`get`)、ディレクトリ移動(`cd`、`lcd`)など、さまざまな機能をサポートします。
SFTP vs FTP
SFTPとFTPは、ファイル転送方法とセキュリティの側面で大きな違いがあります。
- SFTP: SSHを介してデータを暗号化して転送するため安全です。ポート22を使用し、単一ポートですべての通信を処理します。
- FTP: 平文(plain text)でデータを転送するためセキュリティに脆弱です。ポート21を使用し、データ転送のために別途のポートが必要です。
主要オプション
sftpはFTPと同様に対話型モードで起動して使用するか、特定のコマンドとともに非対話型で使用できます。
1) 実行オプション
2) 対話型モード内部コマンド
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`sftp` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
sftpコマンドの様々な使用例を通して機能を習得してください。
対話型モードでサーバーに接続
sftp user@server.com
`user`アカウントで`server.com`に接続し、対話型モードに入ります。
ファイルダウンロード
sftp user@server.com
... (接続後)
cd /var/log
get syslog ~
リモートサーバーの`/var/log`ディレクトリから`syslog`ファイルをローカルの`~`ディレクトリにダウンロードします。
ファイルアップロード
sftp user@server.com
... (接続後)
cd /var/www
put /home/user/document.txt
ローカルの`/home/user/document.txt`ファイルをリモートサーバーの`/var/www`ディレクトリにアップロードします。
非対話型モードでファイル転送
sftp user@server.com:/remote/path <<< 'put localfile.txt'
`put`コマンドを非対話型モードで使用して、ファイルを一度にアップロードします。
インストール
sftpはほとんどのLinuxディストリビューションで`openssh-client`パッケージの一部としてデフォルトで含まれています。SSHクライアントがインストールされていれば、別途インストールする必要はありません。
Debian/Ubuntu
sudo apt update
sudo apt install -y openssh-client
RHEL/CentOS/Fedora
sudo dnf install -y openssh-clients
ヒント&注意事項
sftpコマンド使用時に注意すべき点をまとめました。
ヒント
- sftpは`scp`と同様にSSH認証情報を使用します。したがって、`~/.ssh/config`ファイルを使用して接続設定を簡単に管理できます。
- 対話型モードで`help`と入力すると、すべての内部コマンドのリストが表示されます。`put`、`get`の他に、`mput`、`mget`で複数のファイルを転送できます。
- ネットワークの問題や認証エラーが発生した場合、`-v`オプションを使用して詳細情報を出力すると問題解決に役立ちます。