AI को करने देना
मुझे एक dev सर्वर चाहिए था: SSH एक्सेस और dev टूल्स इंस्टॉल्ड वाली VM। मैंने Claude Code को बताया कि मुझे क्या चाहिए और इसे सेटअप संभालने दिया।
प्रॉम्प्ट
मैंने 8 कोर और 32GB RAM वाली Vultr VM माँगी, केवल Tailscale के माध्यम से एक्सेसिबल, नेटवर्क ड्रॉप से बचने वाले परसिस्टेंट सेशन के साथ।
Claude Code ने क्या बनाया
1. Vultr API के माध्यम से VM प्रोविज़न किया
इसने 8-कोर/32GB Ubuntu इंस्टेंस बनाया, IP का इंतज़ार किया, फिर root के रूप में SSH किया।
2. SSH को मज़बूत किया
Port 49152 # रैंडम हाई पोर्ट
PermitRootLogin no
PasswordAuthentication no
ListenAddress 100.x.x.x # केवल Tailscale इंटरफ़ेस
केवल की-बेस्ड auth, केवल Tailscale इंटरफ़ेस पर लिसनिंग।
3. तीन लेयर का फ़ायरवॉल सेट अप किया
- UFW: Tailscale सबनेट को छोड़कर सभी इनकमिंग को अस्वीकार करें
- fail2ban: फेल्ड लॉगिन प्रयासों के बाद IP को ऑटो-बैन करें
- Vultr फ़ायरवॉल: हाइपरवाइज़र लेवल पर सब कुछ ब्लॉक करें
4. SSH एनेबल्ड के साथ Tailscale इंस्टॉल किया
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up --ssh --authkey=$TAILSCALE_KEY
यह Tailscale के बिल्ट-इन SSH सर्वर के माध्यम से दूसरा SSH पाथ बनाता है, OpenSSH से स्वतंत्र।
5. dev स्टैक इंस्टॉल किया
Node.js (nvm के माध्यम से), Python (pyenv के माध्यम से), Docker, और सामान्य टूल्स। Docker को sudo के बिना चलने के लिए कॉन्फ़िगर किया।
6. tmux के साथ परसिस्टेंट सेशन सेट अप किए
एक स्टार्टअप स्क्रिप्ट जो ऑटोमेटिकली मौजूदा सेशन से फिर से कनेक्ट हो जाती है, ताकि नेटवर्क ड्रॉप चल रहे प्रोसेसेज़ को न मारें।
7. लोकल मैनेजमेंट स्क्रिप्ट्स बनाईं
मेरे लैपटॉप पर dev-start और dev-stop स्क्रिप्ट्स जो Vultr API के माध्यम से VM को स्पिन अप और डाउन करती हैं।
लॉकआउट
फ़िनिश करने के बाद, Claude Code ने root के रूप में SSH करने की कोशिश करके वेरिफाई किया कि root लॉगिन डिसेबल था। लॉगिन फेल हुआ। fail2ban ने फेल्ड अटेम्प्ट्स नोटिस किए और हमें बैन कर दिया।
Claude Code ने Tailscale SSH को सेकेंडरी पाथ के रूप में सेट अप किया था। इसने tailscale ssh का उपयोग करके वापस आया और चलाया:
fail2ban-client set sshd unbanip 100.x.x.x
सेटअप
आपको चाहिए:
- Claude Code (या टूल यूज़ के साथ समान AI)
- एक क्लाउड प्रोवाइडर अकाउंट (Vultr, DigitalOcean, AWS, आदि)
- एक Tailscale अकाउंट
API कीज़ को एनवायरनमेंट वेरिएबल्स के रूप में स्टोर करें और उन्हें नाम से रेफ़रेंस करें (जैसे, $VULTR_API_KEY) ताकि सीक्रेट्स कन्वर्सेशन में न दिखें।
उदाहरण प्रॉम्प्ट:
Vultr पर 8-कोर VM बनाएं, इसे लॉक करें ताकि यह केवल Tailscale के माध्यम से एक्सेसिबल हो, Node/Python/Docker सेट अप करें, और मुझे इसे स्टार्ट और स्टॉप करने के लिए स्क्रिप्ट्स दें।