2026年9月5日
2026年9月5日
scp・sftp接続の安全な設定方法
はじめに
SCP(Secure Copy)とSFTP(Secure File Transfer Protocol)は、ファイルを安全に転送するための方法です。これらの接続はSSH(Secure Shell)に基づいており、データの暗号化や認証を確保することで、ネットワーク上のセキュリティリスクに対抗します。
症状・背景
SCPとSFTP接続が必要になる主な場面には以下のものがあります:
- ローカルマシンと遠隔サーバ間でファイルを安全に転送する必要がある場合
- セキュリティレベルが高いデータを共有するために、一般的なFTP代替手段として使用したい場合
手順・設定方法
ステップ1: SSH接続の認証キー生成と保存
# まず、SSH接続に使う公開鍵と秘密鍵を生成します。
ssh-keygen -t rsa
# 秘密鍵は通常 ~/.ssh/id_rsa に保存されます。公開鍵は ~/.ssh/id_rsa.pub に保存されます。
# 次に、サーバー側のSSHアカウントにこの公開鍵を追加します。
cat ~/.ssh/id_rsa.pub | ssh user@remote_server "mkdir -p .ssh && cat >> .ssh/authorized_keys"
ステップ2: SSH接続設定ファイルの編集
# /etc/ssh/sshd_config ファイルを開き、必要に応じて以下を有効化します。
PermitRootLogin no # 根ユーザーによるSSHログインを無効にする
PasswordAuthentication no # パスワード認証を無効にする
# 上記の設定を行った後は、SSHサービスを再起動します。
service ssh restart
ステップ3: SFTP接続の制限と許可
# /etc/ssh/sshd_config でSFTPユーザーにログインするための制限を追加します。
Match User sftpuser
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
# 上記設定を行った後、SSHサービスを再起動します。
service ssh restart
ステップ4: 実践/トラブルシュート/監視
# SFTP接続に問題がないか確認します。以下はローカルマシンからSFTP接続を行うコマンドです。
sftp sftpuser@remote_server
# 監視には、/var/log/auth.log または /var/log/secure ファイルを定期的にチェックすることで、SSH接続のログを確認できます。
tail -f /var/log/auth.log
注意事項
- SFTPユーザーの権限は最小限に抑えることが重要です。不要なファイルやディレクトリへのアクセスを許可しないように注意しましょう。
- SSHサービスの再起動は、設定変更が正しく反映されるため必要です。
- ログの確認はセキュリティ監視の一環として定期的に行いましょう。
まとめ
1. 公開鍵認証: SCPとSFTP接続を安全にするために、公開鍵認証を使用します。これによりパスワード入力が不要になります。
2. SSHサービスのセキュリティ設定: SSH接続のセキュリティを向上させるため、無効化すべき機能(パスワード認証など)を設定します。
3. SFTPユーザーの制限: SFTPユーザーに対して特定の操作(TCP転送許可やX11転送など)を制限することでセキュリティを強化します。
4. 定期的な監視: SSH接続のログを定期的に確認し、不正アクセスがないかチェックします。
関連記事: