Skip to content

Latest commit

 

History

History
130 lines (106 loc) · 5.86 KB

sunucu-yonetimi.md

File metadata and controls

130 lines (106 loc) · 5.86 KB
description
Uzak sunucu (server) yönetimi, kurulum, yapılandırma ve SSH ile şifresiz bağlanma işlemleri

💻 Sunucu Yönetimi

🔌 Sunucuya Bağlanma

  • ssh -l <username> <ip> veya ssh <user>:<IP> komutu ile sunucuya bağlanılır ve şifre girilir
  • Sunucuya bağlanma sırasında terminal oturumu açılmaktadır
  • Oturum kapandığında terminal de sonlanır, yani bağlantıdan çıkarsanız tüm işler sonlanır
  • Bunu engellemek için sudo apt install tmux komutu ile tmux aracını indirin (nohup uğraştırıcı 😢)
  • tmux ile terminal oturumu içerisinde yeni bir process başlatılmakta ve oturum kapansa da devam etmektedir

{% hint style="info" %} ‍🧙‍♂ Detaylı bilgi için How to run a Python script in the cloud? yazısına bakınız {% endhint %}

🔒 Sunucuya Şifresiz Bağlanma

{% tabs %} {% tab title="✴️ Windows" %} {% code title="ConnectServer.ps1" %}

#requires -PSEdition Core

$USER = Read-Host 'Username'
$IP = Read-Host 'IP adress'
$KEY_ID = Read-Host 'Key ID'
$KEY_PATH = "./.ssh/${KEY_ID}_ecdsa"
ssh-keygen -t ecdsa -b 521 -f ${KEY_PATH}
Get-Service -Name ssh-agent | Set-Service -StartupType AutomaticDelayedStart
Start-Service ssh-agent
ssh-add ${KEY_PATH}

$pub = (Get-Content ~/${KEY_PATH}.pub)
ssh ${USER}@${IP} "\
    mkdir -p ~/.ssh && \
    echo $pub >> .ssh/authorized_keys && \
    chmod 700 ~/.ssh && \
    chmod 600 ~/.ssh/authorized_keys"

{% endcode %} {% endtab %}

{% tab title="🐧 Linux" %} {% code title="connect-server.sh" %}

#!/usr/bin/bash

read -p 'Username: ' USER
read -p 'IP adress: ' IP
read -p 'Key ID: : ' KEY_ID
KEY_PATH="./.ssh/${KEY_ID}_ecdsa"
ssh-keygen -t ecdsa -b 521 -f ${KEY_PATH}
ssh ${USER}@${IP} "\
    mkdir -p ~/.ssh && \
    echo \"`cat ${KEY_PATH}.pub`\" && \
    chmod 700 ~/.ssh && \
    chmod 600 ~/.ssh/authorized_keys"

{% endcode %} {% endtab %} {% endtabs %}

  • 🧐 ssh ${USER}@${IP}komutu ile OpenSSH varlığını kontrol edil, tepki veriyorsa vardır
  • 🔑 ssh-keygen -t ecdsa -b 521 -f ${KEY_PATH} komutu ile ssh anahtarı oluşturun
    • SSH, secure shell anlamına gelir ve uzaktan terminal yönetim protokoldür
    • SSH anahtarlarından pub uzantılı olan açık anahtardır ve sunucuya aktarılması gerekir
    • Diğer anahtar kapalı olandır ve paylaşılmaması gerekmektedir
  • ✴️ Bu adımlar sadece Windows kullanıcıları tarafından powershell üzerinden yapılmalıdır
    • 📢 Get-Service -Name ssh-agent | Set-Service -StartupType AutomaticDelayedStart komutu ile ssh servisini gecikmeli olarak otomatik başlatabilmek için yapılandırın
    • 👮‍♂️ Eğer servis otomatik başlatılmazsa her ssh bağlantısı için yeniden başlatmanız gerekir
    • ⚙️ Start-Service ssh-agent komutu ile ssh servisini başlatın
    • ssh-add ${KEY_PATH} komut ile sshanhtarını keystores içerisine anahtarınızı ekleyin
    • Kapalı anahtarınız keystores içerinde saklanır
    • Sunucu bağlantılarında bu anahtar deposu kullanılır
  • 🚚 ssh ${USER}@${IP} "\ komutunu yazın ve ardından alttaki komutları girin
    • 📂mkdir -p ~/.ssh && \ ile sunucuda sshantahtarları dizini yoksa oluşturun
    • echo (Get-Content ${KEY_PATH}.pub) >> .ssh/authorized_keys && \ ile açık anahtarınızı sunucuda onaylı anahtar listesine ekleyin
    • 🐧echo \"cat ${KEY_PATH}.pub\" && \ komutu ile Linux işletim sistemini kullananlar açık anahtarı ekleyebilir
    • 👮‍♂️ chmod 700 ~/.ssh && \ komutu ile sshdizinini yetkilendirin
    • 👮‍♂️ chmod 600 ~/.ssh/authorized_keys" komutu ile anahtarların olduğu dosyaya okunabilmesi için izinleri verin

{% hint style="info" %} ‍🧙‍♂ Detaylı bilgi için

alanlarına bakabilirsin. {% endhint %}

🕐 Zaman Ayarı Yapma

  • NTP (network time protocol) ayarlarını yapmak için apt-get install ntp ntpdate komutu ile ntpdate paketini kurun
  • ntpdate time.ume.tubitak.gov.tr ile Tubitak NTP sunucusuna bağlantı yapın
  • service ntp restart komutu ile yeniden başlatın
  • date komutu ile tarihi görüntüleyebilirsiniz
  • tzselect komutu ile zaman bölgesini de seçebiliriz

{% hint style="info" %} ‍🧙‍♂ Detaylı bilgi için Linux zaman sunucusu ayarlama alanına bakabilirsin. {% endhint %}

⏳ tmux ile Uzun Süreli İşlemler

  • tmux komutu ile yeni bir terminal açtırın ve oraya komutunuzu yazın
  • ✲ Ctrl + B, D kısayolu ile ana terminalinize geçin
  • Artık oturumu kapatsanız bile tmux ile açılan terminaldeki işlemler devam etmektedir
  • tmux attach komutu ile son terminale bağlanabilirsin
  • Terminal işini sonlandırmak için ✲ Ctrl + B, : kısayoluna basıp kill-session komutunu yazın

{% hint style="info" %} ‍🧙‍♂ Detaylı bilgi için Getting started with Tmux alanına bakabilirsin. {% endhint %}

🐍 Python Kurulumu

  • Sunucularda python default olarak olur ama pip ve venv kurulu olmaz
  • sudo apt install python3-pip ile pip kurulur
  • sudo apt install python3-venv ile sanal ortam oluşturma aracı kurulur
  • pip python paketlerinin indirilmesine yardımcı olan araçtır
  • venv sanal python ortamları oluşturarak sistemin python paketlerinin bozulmasını engeller