Gitea உடன் SSH அணுகல் சிக்கல்களைத் தீர்க்கிறது
சமீபத்தில், எனது உள்ளூர் கணினியில் டோக்கர் கொள்கலனைப் பயன்படுத்தி கீடியா சேவையகத்தை அமைத்தேன். இணைப்பைப் பாதுகாக்க, Certbot வழங்கிய SSL உடன் Nginx ரிவர்ஸ் ப்ராக்ஸியையும் உள்ளமைத்தேன்.
Gitea மற்றும் GitHub இலிருந்து SSH கீ ஜெனரேஷன் டுடோரியல்களைப் பின்பற்றினாலும், Gitea சேவையகத்துடன் இணைக்க முயற்சிக்கும்போது அனுமதி மறுக்கப்பட்ட பிழைகளை எதிர்கொண்டேன். இந்தக் கட்டுரையில் நான் எடுத்த படிகள் மற்றும் SSH அணுகல் சிக்கல்களைத் தீர்க்க நான் பயன்படுத்திய சரிசெய்தல் முறைகள் பற்றி ஆராய்கிறது.
கட்டளை | விளக்கம் |
---|---|
ssh-keygen | பாதுகாப்பான இணைப்புகளுக்கு புதிய SSH விசை ஜோடியை உருவாக்குகிறது. |
eval "$(ssh-agent -s)" | SSH விசைகளை நிர்வகிக்க பின்னணியில் SSH முகவரைத் தொடங்குகிறது. |
ssh-add ~/.ssh/id_rsa | உருவாக்கப்பட்ட SSH தனிப்பட்ட விசையை SSH முகவருடன் சேர்க்கிறது. |
pbcopy < ~/.ssh/id_rsa.pub | MacOS கணினிகளில் உள்ள கிளிப்போர்டுக்கு SSH பொது விசையை நகலெடுக்கிறது. |
xclip -sel clip < ~/.ssh/id_rsa.pub | xclip ஐப் பயன்படுத்தி Linux கணினிகளில் உள்ள கிளிப்போர்டுக்கு SSH பொது விசையை நகலெடுக்கிறது. |
proxy_pass | Nginx உள்ளமைவில் குறிப்பிட்ட பின்தள சேவையகத்திற்கு கோரிக்கையை இயக்குகிறது. |
paramiko.RSAKey.from_private_key_file | Python இல் Paramiko ஐப் பயன்படுத்தி ஒரு கோப்பிலிருந்து RSA தனிப்பட்ட விசையை ஏற்றுகிறது. |
paramiko.SSHClient().set_missing_host_key_policy | பயனரைத் தூண்டாமல் தானாகவே சேவையகத்தின் ஹோஸ்ட் விசையைச் சேர்க்கிறது. |
chmod 600 ~/.ssh/config | SSH உள்ளமைவு கோப்பைப் பாதுகாக்க சரியான அனுமதிகளை அமைக்கிறது. |
SSH இணைப்புச் சிக்கல்களைச் சரிசெய்தல்
முந்தைய எடுத்துக்காட்டுகளில் வழங்கப்பட்ட ஸ்கிரிப்ட்கள் Gitea சேவையகத்திற்கான SSH விசை அங்கீகாரத்தை அமைப்பது மற்றும் சரிசெய்வது போன்ற பல்வேறு அம்சங்களைக் கையாள வடிவமைக்கப்பட்டுள்ளது. முதல் ஸ்கிரிப்ட் ஒரு SSH விசையை உருவாக்க பாஷ் ஸ்கிரிப்டைப் பயன்படுத்துகிறது ssh-keygen, உடன் SSH ஏஜெண்டில் சேர்க்கவும் ssh-add, மற்றும் பொது விசையை கிளிப்போர்டுக்கு நகலெடுக்கவும் pbcopy அல்லது xclip. SSH விசை சரியாக அமைக்கப்பட்டுள்ளதையும், பயன்பாட்டிற்குக் கிடைக்கும் என்பதையும் உறுதிப்படுத்த இந்தப் படிகள் முக்கியமானவை. இரண்டாவது ஸ்கிரிப்ட் Gitea சேவையகத்திற்கு ப்ராக்ஸி கோரிக்கைகளை மாற்றுவதற்கு Nginx ஐ உள்ளமைக்கிறது, SSL சரியாக கையாளப்படுவதையும் கோரிக்கைகள் சரியாக அனுப்பப்படுவதையும் உறுதி செய்கிறது. proxy_pass.
மூன்றாவது எடுத்துக்காட்டில் உள்ள பைதான் ஸ்கிரிப்ட் SSH இணைப்பைச் சோதிக்க Paramiko நூலகத்தைப் பயன்படுத்துகிறது. இந்த ஸ்கிரிப்ட் தனிப்பட்ட விசையைப் பயன்படுத்தி ஏற்றுகிறது paramiko.RSAKey.from_private_key_file மற்றும் Gitea சேவையகத்துடன் இணைக்க முயற்சிக்கிறது. இணைப்பு தோல்வியுற்றால், அது ஒரு பிழை செய்தியை வழங்குகிறது, இது சிக்கலைக் கண்டறிய உதவுகிறது. நான்காவது ஸ்கிரிப்ட் SSH உள்ளமைவு கோப்பைப் புதுப்பித்து, சரியான அமைப்புகள் உள்ளதா என்பதை உறுதிப்படுத்துகிறது. போன்ற கட்டளைகள் Host, HostName, User, மற்றும் IdentityFile Gitea சேவையகத்திற்கான இணைப்பு விவரங்களைக் குறிப்பிடப் பயன்படுகிறது. இறுதியாக, chmod 600 ~/.ssh/config உள்ளமைவு கோப்பைப் பாதுகாக்க, அதற்கான அனுமதிகளை அமைக்கிறது.
Gitea க்கான SSH விசை அங்கீகாரத்தை அமைத்தல்
Frontend உள்ளமைவுக்கு பாஷ் ஸ்கிரிப்டைப் பயன்படுத்துதல்
# Step 1: Generate SSH Key
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# Step 2: Start the ssh-agent in the background
eval "$(ssh-agent -s)"
# Step 3: Add your SSH key to the ssh-agent
ssh-add ~/.ssh/id_rsa
# Step 4: Copy the SSH key to clipboard
pbcopy < ~/.ssh/id_rsa.pub
# If using xclip
xclip -sel clip < ~/.ssh/id_rsa.pub
Gitea க்காக Nginx ரிவர்ஸ் ப்ராக்ஸியை உள்ளமைக்கிறது
Nginx உள்ளமைவு கோப்பைப் பயன்படுத்துதல்
server {
listen 80;
server_name your_domain;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name your_domain;
ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
SSH இணைப்புச் சிக்கல்களைக் கண்டறிதல்
SSH இணைப்பைச் சோதிக்க பைதான் ஸ்கிரிப்டைப் பயன்படுத்துதல்
import paramiko
def test_ssh_connection(host, port, username, key_path):
k = paramiko.RSAKey.from_private_key_file(key_path)
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
c.connect(hostname=host, port=port, username=username, pkey=k)
print("SSH connection successful")
except Exception as e:
print(f"Failed to connect: {e}")
finally:
c.close()
test_ssh_connection('your_domain', 22, 'your_username', '/path/to/id_rsa')
Gitea க்கான SSH உள்ளமைவைப் புதுப்பிக்கிறது
SSH உள்ளமைவு கோப்பைப் பயன்படுத்துதல்
# Open SSH config file
nano ~/.ssh/config
# Add the following configuration
Host gitea_server
HostName your_domain
User your_username
IdentityFile ~/.ssh/id_rsa
# Save and exit
chmod 600 ~/.ssh/config
# Test SSH connection
ssh -T gitea_server
Gitea க்கான மேம்பட்ட SSH விசை மேலாண்மை
Gitea சேவையகத்திற்கான SSH விசைகளை நிர்வகிப்பதற்கான மற்றொரு முக்கிய அம்சம் விசைகளின் சரியான கையாளுதல் மற்றும் சுழற்சி ஆகும். உங்கள் SSH விசைகளைத் தொடர்ந்து சுழற்றுவது, சமரசம் செய்யப்பட்ட விசை காலவரையின்றி பயன்படுத்தப்படும் அபாயத்தைக் குறைப்பதன் மூலம் பாதுகாப்பை மேம்படுத்தும். நீங்கள் ஒரு புதிய விசை ஜோடியை உருவாக்கலாம் ssh-keygen புதிய விசையைப் பிரதிபலிக்க உங்கள் Gitea அமைப்புகளைப் புதுப்பிக்கவும். காலப்போக்கில் உங்கள் சேவையகத்திற்கான பாதுகாப்பான அணுகலைப் பராமரிக்க இந்த நடைமுறை முக்கியமானது. கூடுதலாக, உங்கள் SSH விசைகள் பாதுகாப்பாக சேமிக்கப்படுவதையும், அங்கீகரிக்கப்படாத பயனர்களுக்கு வெளிப்படாமல் இருப்பதையும் உறுதி செய்வது மிகவும் அவசியம். போன்ற கருவிகளைப் பயன்படுத்தவும் ssh-agent நினைவகத்தில் பாதுகாப்பாக விசைகளை நிர்வகிக்க மற்றும் பாதுகாப்பற்ற நிலையில் தனிப்பட்ட விசைகளை வட்டில் விடுவதை தவிர்க்கவும்.
உங்கள் SSH விசைகள் மற்றும் உள்ளமைவு கோப்புகளில் கடுமையான அனுமதிகளை செயல்படுத்துவது பாதுகாப்பின் மற்றொரு அடுக்கு ஆகும். போன்ற கட்டளைகள் chmod 600 ~/.ssh/id_rsa மற்றும் chmod 600 ~/.ssh/config இந்த கோப்புகளுக்கான அணுகலை கட்டுப்படுத்துகிறது, இது அங்கீகரிக்கப்படாத பயனர்கள் அணுகலைப் பெறுவதை கடினமாக்குகிறது. மேலும், உங்கள் SSH கீ பயன்பாட்டிற்கு கூடுதல் பாதுகாப்பைச் சேர்க்க, பல காரணி அங்கீகாரத்தைப் (MFA) பயன்படுத்தலாம். Google Authenticator அல்லது ஹார்டுவேர் டோக்கன்கள் போன்ற கருவிகள் உங்கள் SSH அமைப்புடன் ஒருங்கிணைக்கப்பட்டு, இரண்டாவது வகை சரிபார்ப்பு தேவைப்படுவதால், அங்கீகரிக்கப்படாத அணுகலை இன்னும் சவாலானதாக ஆக்குகிறது.
SSH அணுகல் சிக்கல்களுக்கான பொதுவான கேள்விகள் மற்றும் தீர்வுகள்
- "அனுமதி மறுக்கப்பட்டது" என்ற பிழையை நான் ஏன் பெறுகிறேன்?
- உங்கள் SSH விசைகள் SSH முகவருடன் சரியாகச் சேர்க்கப்பட்டுள்ளதையும், உங்கள் Gitea சேவையகத்தின் அங்கீகரிக்கப்பட்ட விசைகளில் பொது விசை சேர்க்கப்பட்டுள்ளதையும் உறுதிசெய்யவும்.
- புதிய SSH விசை ஜோடியை எவ்வாறு உருவாக்குவது?
- கட்டளையைப் பயன்படுத்தவும் ssh-keygen -t rsa -b 4096 -C "your_email@example.com" புதிய SSH விசை ஜோடியை உருவாக்க.
- எனது SSH விசையை ssh-agent இல் எவ்வாறு சேர்ப்பது?
- கட்டளையைப் பயன்படுத்தவும் eval "$(ssh-agent -s)" முகவரைத் தொடங்க மற்றும் ssh-add ~/.ssh/id_rsa உங்கள் சாவியைச் சேர்க்க.
- எனது SSH பொது விசையை கிளிப்போர்டுக்கு நகலெடுப்பது எப்படி?
- பயன்படுத்தவும் pbcopy < ~/.ssh/id_rsa.pub macOS இல் அல்லது xclip -sel clip < ~/.ssh/id_rsa.pub லினக்ஸில்.
- எனது SSH விசை சமரசம் செய்யப்பட்டால் நான் என்ன செய்ய வேண்டும்?
- புதிய SSH விசை ஜோடியை உருவாக்கி, உங்கள் Gitea சேவையகம் மற்றும் விசை பயன்படுத்தப்பட்ட மற்ற எல்லா சேவைகளிலும் உள்ள விசைகளைப் புதுப்பிக்கவும்.
- எனது SSH முக்கிய கோப்புகளில் சரியான அனுமதிகளை எவ்வாறு அமைப்பது?
- கட்டளையைப் பயன்படுத்தவும் chmod 600 ~/.ssh/id_rsa உங்கள் தனிப்பட்ட விசை கோப்பில் சரியான அனுமதிகளை அமைக்க.
- எனது SSH இணைப்பு ஏன் முடிவடைகிறது?
- உங்கள் பிணைய இணைப்பைச் சரிபார்த்து, Gitea சேவையகம் இயங்குவதையும், SSH போர்ட் திறக்கப்பட்டு அணுகக்கூடியதாக இருப்பதையும் உறுதிப்படுத்தவும்.
- சேவையகத்துடன் எனது SSH இணைப்பை எவ்வாறு சோதிப்பது?
- கட்டளையைப் பயன்படுத்தவும் ssh -T your_username@your_domain இணைப்பை சோதிக்க.
SSH இணைப்பைப் பாதுகாப்பதற்கான இறுதிப் படிகள்
முடிவில், Gitea சேவையகத்துடன் நம்பகமான SSH இணைப்பை நிறுவுவதற்கு SSH விசைகள், Nginx ப்ராக்ஸி அமைப்புகள் மற்றும் கடுமையான பாதுகாப்பு நடைமுறைகளை கவனமாக உள்ளமைக்க வேண்டும். SSH விசைகளை உருவாக்குதல் மற்றும் நிர்வகித்தல், பொருத்தமான அனுமதிகளை அமைத்தல் மற்றும் Nginx ஐ சரியாக உள்ளமைத்தல் உட்பட கோடிட்டுக் காட்டப்பட்டுள்ள படிகளைப் பின்பற்றுவதன் மூலம், பயனர்கள் பாதுகாப்பான மற்றும் செயல்பாட்டு அமைப்பை உறுதிப்படுத்த முடியும். Paramiko போன்ற கருவிகளுடன் இணைப்புகளைச் சோதிப்பது மற்றும் தொடர்ந்து சுழலும் விசைகள் பாதுகாப்பு மற்றும் நம்பகத்தன்மையை மேலும் மேம்படுத்துகிறது. இந்த கூறுகளை விரிவாகக் கையாள்வது இணைப்புச் சிக்கல்களைத் தீர்ப்பதற்கும் பாதுகாப்பான வளர்ச்சிச் சூழலைப் பராமரிப்பதற்கும் உதவுகிறது.