SCP と SFTP
関連記事
Secure copy (SCP) は Secure Shell 接続を使ってファイルを転送するプロトコルです。SSH file transfer protocol (SFTP) は同じようなプロトコルで、SCP と同様に Secure Shell をバックエンドとして使います。どちらのプロトコルでもパスワードや転送データが暗号化されるので、安全にファイルを転送できます。ただし、SFTP プロトコルには、中断した転送の再開やリモートのファイルを削除したりする機能が追加されています。
目次
Secure file transfer protocol (SFTP)
OpenSSH をインストール・設定するだけで SFTP のセットアップも完了しています。SSH が動作しているのであれば、SSH のデフォルト設定で有効になっているので SFTP も同じく動作しています。設定が古い場合は以下の手順に従ってください。
適当なエディタで /etc/ssh/sshd_config
を開いて、以下の行を (存在しない場合) 追加してください:
Subsystem sftp /usr/lib/ssh/sftp-server
sshd.service
デーモンを再起動すれば SFTP が機能します。
sftp プログラムや sshfs を使ってファイルを操作できるはずです。標準的な FTP プログラムも大抵は動作します。
Secure copy protocol (SCP)
openssh をインストール・設定して起動してください。パッケージにはファイルを転送するための scp コマンドが含まれています。詳しくは Secure Shell を参照。
rsshAUR や scponly などのパッケージをインストールすることでさらに機能を追加できます。下を参照。
Scponly
Scponly は scp/sftp だけでしかコンピュータにアクセスできないようにする制限的なシェルです。さらに、scponly で特定のディレクトリに chroot をセットアップして更にセキュリティを高めることもできます。
既にユーザーを作成している場合、ユーザーのシェルを scponly に設定するだけです:
# usermod -s /usr/bin/scponly username
これで完了です。適当な sftp クライアントを使用してテストしてみてください。
chroot 監獄の追加
パッケージには chroot を作成するスクリプトが付属しています。使用するには:
# cd /usr/share/doc/scponly/
# ./setup_chroot.sh
- 質問に答えてください。
/path/to/chroot
の所有者をroot:root
にして others の権限をr-x
にします。- 使用するユーザーのシェルを
/usr/bin/scponlyc
に変更します。 - sftp-server は libnss_files などの libnss モジュールを必要とします。モジュールを chroot の
/lib
パスにコピーしてください。