# किसी साइट में SSH Keys जोड़ना

Source: https://support.kapsulehost.com/hi-in/adding-ssh-keys

SSH पहुंच किसी KapsuleHost site तक केवल कुंजी (key) आधारित है, इसलिए शेल या SFTP सत्र खोलने से पहले आपको KPanel में site के विरुद्ध एक सार्वजनिक कुंजी पंजीकृत करनी होगी। यह गाइड बताती है कि वह पृष्ठ कहां है, आपके पास पहले से मौजूद कुंजी कैसे जोड़ें, KapsuleHost से आपके लिए एक कुंजी कैसे बनवाएं, और जिस कुंजी पर अब आपको भरोसा नहीं है उसे कैसे रद्द करें।

## SSH कुंजियां पृष्ठ कहां मिलेगा

**वेबसाइटें** खोलें, site पर क्लिक करें, फिर site के बाएं मेनू में **सेटिंग्स** समूह खोलें, और **SSH कुंजियां** चुनें। पृष्ठ का शीर्षक **SSH पहुंच** है और इसमें दो चीजें होती हैं: इस site के लिए कनेक्शन विवरण, और वर्तमान में उनका उपयोग करने के लिए अधिकृत सार्वजनिक कुंजियों की सूची।

मुख्य साइडबार में कोई शीर्ष-स्तरीय SSH आइटम नहीं है। कुंजियां प्रति site होती हैं, इसलिए यहां जोड़ी गई कुंजी केवल इसी site के विरुद्ध प्रमाणीकरण करती है। यदि आप कई sites चलाते हैं, तो हर एक को अपनी अलग प्रविष्टि चाहिए, भले ही वह आपके लैपटॉप पर वही कुंजी हो।

![KPanel में किसी site के लिए SSH पहुंच पृष्ठ, जिसमें कनेक्शन विवरण और अधिकृत सार्वजनिक कुंजियों की सूची है](https://support.kapsulehost.com/help/screenshots/adding-ssh-keys.2a53d172.webp)

> **Note:** कुंजी जोड़ने या रद्द करने के लिए **sites:write** अनुमति चाहिए। यदि आप टीम खाते पर केवल-पढ़ने वाली भूमिका पर हैं, तो **कुंजी जोड़ें** बटन और रद्द करने वाला आइकन छिपे रहते हैं। बदलाव के लिए किसी खाता स्वामी या व्यवस्थापक से कहें।

## कनेक्शन विवरण

पृष्ठ के शीर्ष पर **कनेक्शन विवरण** कार्ड आपके क्लाइंट को चाहिए वह सब कुछ दिखाता है:

| फील्ड | यह क्या है |
|---|---|
| होस्ट | जिस होस्टनेम से जुड़ना है |
| पोर्ट | इस site के लिए SSH पोर्ट |
| उपयोगकर्ता नाम | वह सिस्टम उपयोगकर्ता जिसके रूप में आपका site चलता है |
| SSH | इस site के लिए तैयार `ssh` कमांड |
| SFTP | इस site के लिए तैयार `sftp` कमांड |

हर पंक्ति में एक कॉपी नियंत्रण है, और SSH तथा SFTP पंक्तियां केवल मान नहीं बल्कि पूरा कमांड कॉपी करती हैं, जिससे आप सीधे टर्मिनल में पेस्ट कर सकें। कमांड खुद टाइप करने के बजाय इन दोनों का उपयोग करें: इनमें पहले से ही सही उपयोगकर्ता, होस्ट और पोर्ट मौजूद होते हैं।

यदि कार्ड बिल्कुल नहीं दिखता, तो site ने अभी अपना शेल उपयोगकर्ता प्रावधान करना पूरा नहीं किया है। ऐसी स्थिति में API एक सामान्य **Site के पास SSH user नहीं है** त्रुटि लौटाता है। site की स्थिति वाली गोली के **Active** पढ़े जाने की प्रतीक्षा करें और पृष्ठ फिर से लोड करें।

## पहले से मौजूद कुंजी जोड़ना

अधिकांश लोगों के पास पहले से ही अपनी मशीन पर एक कुंजी जोड़ी होती है। यहां सार्वजनिक हिस्सा जोड़ें।

1. अपने ही कंप्यूटर पर, अपनी सार्वजनिक कुंजी प्रिंट करें। macOS और Linux पर यह आमतौर पर `cat ~/.ssh/id_ed25519.pub` होता है, या पुरानी RSA कुंजी के लिए `cat ~/.ssh/id_rsa.pub`। OpenSSH के साथ Windows पर यह `type %USERPROFILE%\.ssh\id_ed25519.pub` है।
2. पूरी एकल पंक्ति कॉपी करें, जो `ssh-ed25519`, `ssh-rsa` या `ecdsa-sha2-nistp256` से शुरू होती है।
3. KPanel में, **कुंजी जोड़ें** पर क्लिक करें।
4. **Label** फील्ड में कुछ याद रखने लायक डालें, उदाहरण के लिए उस मशीन का नाम जिस पर कुंजी रखी है।
5. सार्वजनिक कुंजी को दूसरे फील्ड में पेस्ट करें।
6. **कुंजी जोड़ें** पर क्लिक करें।

कुंजी तुरंत **Authorised keys** सूची में दिखाई देती है, जिसके लेबल के नीचे उसका फिंगरप्रिंट होता है। आप तुरंत जुड़ सकते हैं।

KapsuleHost हर बार कुंजी जोड़े जाने पर खाते के पते पर ईमेल भी भेजता है, जिसमें लेबल, फिंगरप्रिंट और site का उल्लेख होता है। यह मेल जानबूझकर भेजी जाती है: SSH पहुंच उच्च विश्वास वाली होती है, इसलिए यदि ऐसी कोई कुंजी दिखाई दे जो आपने नहीं जोड़ी, तो उसे तुरंत रद्द करें और अपना पासवर्ड बदलें।

> **Warning:** केवल `.pub` फ़ाइल ही पेस्ट करें। निजी कुंजी फ़ाइल में `.pub` एक्सटेंशन नहीं होता और यह `-----BEGIN OPENSSH PRIVATE KEY-----` जैसी पंक्ति से शुरू होती है। यदि आप वह पेस्ट करते हैं, तो वह आपकी निजी कुंजी है, और उसे दोबारा उपयोग करने के बजाय नए सिरे से बनाना होगा।

### यदि आपके पास अभी तक कोई कुंजी नहीं है

`ssh-keygen -t ed25519 -C "your-label"` से स्थानीय रूप से एक बनाएं, डिफ़ॉल्ट फ़ाइल स्थान स्वीकार करें, और संकेत मिलने पर एक पासफ़्रेज़ सेट करें। इससे `~/.ssh/id_ed25519` (इसे निजी रखें) और `~/.ssh/id_ed25519.pub` (इसी को पेस्ट करें) बनते हैं।

## KapsuleHost से कुंजी जोड़ी बनवाना

यदि आप `ssh-keygen` चलाना नहीं चाहते, तो KPanel आपके लिए जोड़ी बना सकता है।

1. **कुंजी जोड़ें** पर क्लिक करें।
2. **Label** फील्ड भरें। सार्वजनिक कुंजी बॉक्स खाली छोड़ दें।
3. **कुंजी जोड़ी बनाएं** पर क्लिक करें।

KapsuleHost एक Ed25519 जोड़ी बनाता है, सार्वजनिक हिस्से को site के विरुद्ध स्थापित करता है, और एक हरा बैनर दिखाता है: **कुंजी जोड़ी बनाई गई: निजी कुंजी अभी डाउनलोड करें**। निजी कुंजी सहेजने के लिए **.pem डाउनलोड करें** पर क्लिक करें। फ़ाइल का नाम आपके चुने हुए लेबल के अनुसार होता है।

> **Important:** निजी कुंजी केवल एक बार ही दिखाई जाती है। बैनर में यह स्पष्ट रूप से लिखा है: यह एकमात्र समय है जब आप इसे डाउनलोड कर सकते हैं। KapsuleHost बाद में प्राप्त करने के लिए कोई प्रति नहीं रखता। यदि आप बिना डाउनलोड किए बैनर बंद कर देते हैं, तो कुंजी रद्द करें और एक नई जोड़ी बनाएं।

बनाई गई कुंजी पर कोई पासफ़्रेज़ नहीं होता, और यही इसे बिना संकेत दिए स्क्रिप्ट से उपयोग करने योग्य बनाता है। इसका मतलब यह भी है कि फ़ाइल स्वयं ही पूरी साख है। यदि आप पासफ़्रेज़ चाहते हैं, तो इसके बजाय खुद `ssh-keygen` से जोड़ी बनाएं और सार्वजनिक हिस्सा पेस्ट करें।

डाउनलोड होने के बाद, फ़ाइल को किसी उपयुक्त जगह ले जाएं और उसकी अनुमतियां सख्त करें, क्योंकि SSH किसी ऐसी निजी कुंजी का उपयोग करने से मना कर देता है जिसे कोई भी पढ़ सके:

```sh
mv ~/Downloads/my-laptop_id_ed25519.pem ~/.ssh/kapsule-mysite.pem
chmod 600 ~/.ssh/kapsule-mysite.pem
ssh -i ~/.ssh/kapsule-mysite.pem <username>@<host> -p <port>
```

**कनेक्शन विवरण** कार्ड से उपयोगकर्ता नाम, होस्ट और पोर्ट स्थानापन्न करें।

## अधिकृत कुंजियों की सूची पढ़ना

**Authorised keys** की हर पंक्ति यह दिखाती है:

- आपके द्वारा दिया गया कुंजी का लेबल।
- कुंजी फिंगरप्रिंट, जिससे आप मिलते-जुलते लेबल वाली दो कुंजियों में अंतर पहचानते हैं।
- **Added** उस तारीख के साथ जब इसे पंजीकृत किया गया था।
- **अंतिम उपयोग** सबसे हाल के प्रमाणीकरण की तारीख के साथ, या यदि अभी तक प्रमाणीकरण नहीं हुआ है तो **कभी इस्तेमाल नहीं किया गया**।

सफाई अभियान के दौरान **अंतिम उपयोग** कॉलम सबसे उपयोगी होता है। जो कुंजी कभी उपयोग नहीं हुई, या महीनों से उपयोग नहीं हुई है, वह आमतौर पर किसी बदल दिए गए लैपटॉप या किसी ऐसे ठेकेदार की होती है जो आगे बढ़ चुका है।

## कुंजी रद्द करना

कुंजी की पंक्ति पर लाल कूड़ेदान आइकन पर क्लिक करें। KPanel **SSH कुंजी को रद्द करें?** के साथ पुष्टि मांगता है और एक नोट के साथ बताता है कि अब यह कुंजी इस site के विरुद्ध प्रमाणीकरण नहीं करेगी। समाप्त करने के लिए **Revoke** पर क्लिक करें।

रद्दीकरण नए कनेक्शनों पर प्रभावी होता है। कुंजी रद्द करने से पहले से खुला कोई SSH सत्र समाप्त नहीं होता, इसलिए यदि आप किसी ऐसे व्यक्ति की पहुंच हटा रहे हैं जो अभी भी जुड़ा हो सकता है, तो कुंजी रद्द करने के बाद वह सब कुछ बदल दें जो वह अपने साथ ले जा सकता था: डेटाबेस पासवर्ड, एप्लिकेशन रहस्य, और site पर संग्रहीत कोई भी टोकन।

> **Tip:** कुंजी सूची को छोटा रखें। हर मशीन के लिए एक कुंजी, जिसका लेबल मशीन के नाम पर हो, "key1", "new key" और "temp" नाम वाली कुंजियों के ढेर की तुलना में ऑडिट करना कहीं आसान है।

## समस्या निवारण

**Permission denied (publickey)।** सबसे आम कारण यह है कि आपका क्लाइंट आपके द्वारा पंजीकृत कुंजी से अलग कुंजी प्रस्तुत कर रहा है। `ssh -i /path/to/private_key ...` से सही कुंजी के लिए बाध्य करें, या `ssh -v` से जांचें कि कौन सी कुंजियां प्रस्तुत की जा रही हैं।

**Connection refused या timeout।** पुष्टि करें कि आप **कनेक्शन विवरण** में दिखाया गया पोर्ट उपयोग कर रहे हैं, न कि डिफ़ॉल्ट 22। कमांड खुद टाइप करने के बजाय पृष्ठ से SSH कमांड कॉपी करें।

**निजी कुंजी पर गलत अनुमतियां।** OpenSSH किसी ऐसी निजी कुंजी को मना कर देता है जिसे अन्य उपयोगकर्ता पढ़ सकते हों। फ़ाइल पर `chmod 600` चलाएं।

**कुंजी SSH के लिए काम करती है पर SFTP के लिए नहीं।** दोनों एक ही साख साझा करते हैं, इसलिए यह लगभग हमेशा कुंजी के बजाय क्लाइंट की समस्या होती है। पृष्ठ से कॉपी किया गया SFTP कमांड उपयोग करें, जिसमें पहले से ही सही पोर्ट मौजूद है।

## आगे क्या करें

- [SFTP के साथ फ़ाइलें अपलोड करना](https://support.kapsulehost.com/hi-in/sftp-access) इन्हीं साख के फ़ाइल स्थानांतरण पहलू को कवर करता है।
- [SSH टनल के माध्यम से अपने डेटाबेस से जुड़ना](https://support.kapsulehost.com/hi-in/database-ssh-tunnel) अभी-अभी जोड़ी गई कुंजी का उपयोग डेस्कटॉप क्लाइंट से MySQL तक पहुंचने के लिए करता है।
- [Site गतिविधि लॉग](https://support.kapsulehost.com/hi-in/site-activity-log) आपके द्वारा जोड़ी गई हर कुंजी को रिकॉर्ड करता है, ताकि आप बाद में जांच सकें कि किसने क्या और कब जोड़ा।
