FtpSkill
Skill JunSuzuki1973/ftpSkill
レンタルサーバーへの自動デプロイと管理を行う汎用的なスキル。SSH/SFTP接続でファイルのアップロード、ダウンロード、権限変更、削除などを自動化します。From its SKILL.md
npx -y skills add JunSuzuki1973/ftpSkillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
11.4 KB, ~4.0k tokens by cl100k_base, as published. Nobody here has run it
Agent Skill: sftp-deployer
概要
レンタルサーバーへの自動デプロイと管理を行う汎用的なスキルセットです。GUIベースのFTPクライアントと同等の機能をコマンドラインから利用でき、AIエージェントが自動的に操作できます。
対応サーバー
基本要件
- ✅ SSH/SFTP接続が可能な任意のサーバー
- ✅ パスワード認証・SSH公開鍵認証の両方に対応
- ✅ ほぼすべてのレンタルサーバー、VPS、クラウドサーバーで利用可能
認証方式
- パスワード認証:
.envにFTP_PASSを設定 - 公開鍵認証:
.envにFTP_KEY_FILEを設定 - 柔軟な対応: サーバーの仕様に合わせて認証方式を選択可能
対応サーバー例
- Xserver、さくらインターネット、ロリポップ、ConoHa WING、mixhostなど
- AWS EC2、Google Cloud、Azure、DigitalOcean、Linodeなど
- 自宅サーバー、Raspberry Piなど(SSH対応であれば何でもOK)
トリガー
- ユーザーが「デプロイして」「サーバーにアップして」「ファイルを確認して」などと指示した場合
使用可能なツール
📤 アップロード・デプロイ
- sftp_deploy.py - ファイル/ディレクトリのアップロード
- sftp_mkdir.py - リモートディレクトリの作成
📥 ダウンロード・バックアップ
- sftp_download.py - ファイル/ディレクトリのダウンロード
📋 確認・一覧表示
- sftp_list.py - ファイル一覧表示(詳細情報付き)
🔧 管理・操作
- sftp_chmod.py - パーミッション変更
- sftp_delete.py - ファイル/ディレクトリの削除
🔍 その他
- find_remote_path.py - リモートパス探索
主要な使用例
1. デプロイ(アップロード)
# デフォルトパスにデプロイ
python scripts/sftp_deploy.py my_website
# 特定のパスにデプロイ
python scripts/sftp_deploy.py my_website /var/www/html
# テスト実行(Mock モード)
python scripts/sftp_deploy.py my_website --mock
2. ダウンロード(バックアップ)
# デフォルトパスからダウンロード
python scripts/sftp_download.py ./backup
# 特定のファイルをダウンロード
python scripts/sftp_download.py /var/www/html/config.php ./config_backup.php
# ディレクトリ全体をバックアップ
python scripts/sftp_download.py /var/www/html ./website_backup
3. ファイル一覧表示
# シンプルな一覧表示
python scripts/sftp_list.py
# 詳細表示(権限、サイズ、日時)
python scripts/sftp_list.py -l
# 再帰的に表示
python scripts/sftp_list.py -r
# 特定のディレクトリを詳細表示
python scripts/sftp_list.py -l /var/www/html
4. 権限変更
# ファイルを実行可能に
python scripts/sftp_chmod.py /var/www/html/script.sh 755
# ディレクトリの権限変更
python scripts/sftp_chmod.py /var/www/html/uploads 777
# 再帰的に権限変更
python scripts/sftp_chmod.py /var/www/html 755 -r
5. ディレクトリ作成
# 単一ディレクトリ作成
python scripts/sftp_mkdir.py /var/www/html/uploads
# ネストしたディレクトリ作成
python scripts/sftp_mkdir.py /var/www/html/app/data/cache
# 特定の権限で作成
python scripts/sftp_mkdir.py /var/www/html/logs -m 777
6. 削除
# デフォルトパスを削除(確認プロンプトあり)
python scripts/sftp_delete.py
# 特定のパスを削除
python scripts/sftp_delete.py /var/www/html/old_files
自動パーミッション設定(デプロイ時)
| ファイル/ディレクトリ | パーミッション | 説明 |
|---|---|---|
.cgi, .py, .pl, .sh | 755 | CGIスクリプト(実行権限) |
data/ ディレクトリ | 707 | データディレクトリ(書き込み権限) |
| その他のファイル | 644 | 標準ファイル |
| その他のディレクトリ | 755 | 標準ディレクトリ |
AIエージェント向けガイドライン
ユーザーの指示に応じた適切なツール選択
| ユーザーの指示例 | 使用するツール | 備考 |
|---|---|---|
| 「デプロイして」「アップロードして」 | sftp_deploy.py | デフォルトパスまたは指定パス |
| 「ファイルを確認して」「何があるか見て」 | sftp_list.py | -l オプションで詳細表示 |
| 「バックアップして」「ダウンロードして」 | sftp_download.py | ローカルに保存 |
| 「実行権限を付けて」「権限を変更して」 | sftp_chmod.py | 適切なモード指定 |
| 「ディレクトリを作って」 | sftp_mkdir.py | 親ディレクトリも自動作成 |
| 「削除して」「クリアして」 | sftp_delete.py | 確認プロンプトあり |
推奨ワークフロー
デプロイ前
sftp_list.py -lで現在の状態確認- 必要に応じて
sftp_download.pyでバックアップ sftp_deploy.pyでデプロイsftp_list.pyで結果確認
トラブルシューティング
sftp_list.py -lで権限確認sftp_chmod.pyで権限修正- 必要に応じて
sftp_download.pyでログ取得
重要な注意事項
⚠️ Pythonについて
- レンタルサーバーではPythonスクリプトは推奨されません
.pyファイルは実行されず、ダウンロードされる可能性があります- CGIモードは古く、非効率的です
- 推奨: HTML、PHP、JavaScriptを使用してください
✅ 推奨される技術スタック
- HTML - 静的サイト
- PHP - サーバーサイド処理(レンタルサーバーで標準サポート)
- JavaScript - クライアントサイド処理
📁 リモートパスの設定
.env の FTP_REMOTE_ROOT にデフォルトのデプロイ先を設定できます:
例(Xserver):
FTP_REMOTE_ROOT=./your_domain.com/public_html
例(一般的なレンタルサーバー):
FTP_REMOTE_ROOT=./public_html
FTP_REMOTE_ROOT=./www
FTP_REMOTE_ROOT=/var/www/html
セットアップ手順
1. 必須ファイル: .env
resources/.env.example をコピーして .env を作成し、サーバー情報を設定:
# サーバー接続情報
FTP_HOST=your_server_host.com
FTP_USER=your_username
FTP_PORT=22
# 認証方式(どちらか一方を設定)
# パスワード認証の場合
FTP_PASS=your_password
# SSH鍵認証の場合
FTP_KEY_FILE=path/to/your_key.key
# その他の設定
FTP_TIMEOUT=30
FTP_REMOTE_ROOT=./public_html
2. 必須ライブラリのインストール
pip install -r requirements.txt
requirements.txt の内容:
paramiko- SFTP接続python-dotenv- 環境変数管理
3. SSH鍵ファイル(鍵認証の場合)
- SSH秘密鍵ファイルをプロジェクトルートに配置
- サーバーの管理画面からダウンロード可能(Xserver、さくらなど)
.envのFTP_KEY_FILEにファイル名を指定
トラブルシューティング
接続タイムアウト
- タイムアウト設定は30秒(
.envのFTP_TIMEOUTで変更可能) - ホストキーは自動的に受け入れられます(
AutoAddPolicy) - ファイアウォールやポート設定を確認
ファイルが表示されない
- デプロイ先パスが正しいか確認
- Webルートディレクトリに
index.htmlが存在するか確認 - サーバーのドキュメントルート設定を確認
権限エラー
- SSH鍵ファイルのパスが正しいか確認
.envの設定(ホスト、ユーザー名、ポート)を確認- パスワード認証と鍵認証が混在していないか確認
ポート番号
- 一般的なSSH/SFTPポート:
22 - Xserverなど一部のサーバー:
10022 - サーバーのドキュメントで確認してください
サーバー別設定例
Xserver
公開鍵認証のみ対応
FTP_HOST=xs123456.xsrv.jp
FTP_USER=xs123456
FTP_PORT=10022
FTP_KEY_FILE=xs123456.key
FTP_REMOTE_ROOT=./your_domain.com/public_html
さくらインターネット
パスワード認証
FTP_HOST=your_server.sakura.ne.jp
FTP_USER=your_username
FTP_PORT=22
FTP_PASS=your_password
FTP_REMOTE_ROOT=./www
公開鍵認証
FTP_HOST=your_server.sakura.ne.jp
FTP_USER=your_username
FTP_PORT=22
FTP_KEY_FILE=sakura_server.key
FTP_REMOTE_ROOT=./www
ロリポップ
パスワード認証
FTP_HOST=your_server.lolipop.jp
FTP_USER=your_username
FTP_PORT=22
FTP_PASS=your_password
FTP_REMOTE_ROOT=.
VPS(一般的な設定)
公開鍵認証(推奨)
FTP_HOST=123.456.789.012
FTP_USER=root
FTP_PORT=22
FTP_KEY_FILE=server_key.pem
FTP_REMOTE_ROOT=/var/www/html
パスワード認証
FTP_HOST=123.456.789.012
FTP_USER=root
FTP_PORT=22
FTP_PASS=your_root_password
FTP_REMOTE_ROOT=/var/www/html
ツール一覧クイックリファレンス
| ツール | 機能 | 主なオプション |
|---|---|---|
| sftp_deploy.py | アップロード | --mock (テスト実行) |
| sftp_download.py | ダウンロード | - |
| sftp_list.py | 一覧表示 | -l (詳細), -r (再帰) |
| sftp_chmod.py | 権限変更 | -r (再帰) |
| sftp_mkdir.py | ディレクトリ作成 | -m (モード指定) |
| sftp_delete.py | 削除 | (確認プロンプトあり) |
AIエージェントでの使用方法
このスキルはAntigravity、Claude Desktop、Claude Codeのいずれでも使用可能です。
スキルの配置
以下のいずれかの方法でスキルフォルダを配置してください:
-
Antigravity の場合:
- プロジェクトの
.agent/skills/ftpSkill/ディレクトリに配置 - 例:
E:\MyProject\.agent\skills\ftpSkill\ .agent/skills/への配置が推奨されます
# .agent/skills ディレクトリを作成 New-Item -ItemType Directory -Path ".agent\skills" -Force # ftpSkill フォルダをコピー Copy-Item -Recurse ftpSkill ".agent\skills\ftpSkill" - プロジェクトの
-
Claude Desktop の場合:
~/.claude/skills/sftp-deployer/
-
Claude Code の場合:
- プロジェクトルートの
.agent/skills/sftp-deployer/
- プロジェクトルートの
初期設定
# 依存関係をインストール
cd .agent\skills\ftpSkill
pip install -r requirements.txt
# .env ファイルを作成
Copy-Item resources\.env.example .env
# .env を編集してサーバー情報を設定
notepad .env
使用例
スキルが配置されると、AIエージェントは自動的にこのスキルを認識し、以下のような指示に対応できます:
「このWebサイトをサーバーにデプロイして」
「サーバーのファイル一覧を確認して」
「サーバーからバックアップをダウンロードして」
「uploads フォルダの権限を777に変更して」
AIエージェントは適切なツールを自動選択し、必要な操作を実行します。
What ships with it: 22 files
95.6 KB alongside SKILL.md, 9 of them executable
examples/
- USAGE_EXAMPLES.md6.2 KB
resources/
- .deploy.json.example525 B
- .deploy.schema.json2.0 KB
- .env.example160 B
- PROJECT_CONFIG.md7.2 KB
scripts/
- deploy_config.pyruns6.5 KB
- find_remote_path.pyruns3.2 KB
- __init__.pyruns652 B
- sftp_chmod.pyruns5.9 KB
- sftp_delete.pyruns4.4 KB
- sftp_deploy.pyruns9.2 KB
- sftp_download.pyruns6.9 KB
- sftp_list.pyruns7.5 KB
- sftp_mkdir.pyruns6.0 KB
- CHANGELOG.md2.0 KB
- CLAUDE_AGENT_SKILL_CHECKLIST.md4.6 KB
- CONTRIBUTING.md1.8 KB
- DISTRIBUTION_READY.md6.5 KB
- .gitignore541 B
- LICENSE1.1 KB
- README.md12.9 KB
- requirements.txt23 B