SSD Nodes Learn 8GB RAM — yılda $66
Rehberler Matt ConnorYazan Matt Connor

Ubuntu VPS root parolası nasıl değiştirilir?

Ubuntu VPS'te root veya kullanıcı parolasını passwd, chpasswd ve chage ile değiştirin. SSH ya da root parolası kaybedilirse yeniden erişim yollarını öğrenin.

Ubuntu'da VPS root parolası nasıl değiştirilir

Ubuntu'da VPS (sanal özel sunucu) root parolasını değiştirmek için sudo komutunu çalıştırabilen bir kullanıcı olarak bir SSH (güvenli kabuk) oturumu açın ve ardından sudo passwd root komutunu çalıştırın. Yeni parola iki kez sorulur. Eski parola sorulmaz, çünkü sudo kimliğinizi zaten doğrulamıştır. Kendi oturum açma parolanızı değiştirmek için bağımsız değişken olmadan passwd komutunu çalıştırın. Bu durumda önce mevcut parolanız sorulur.

passwd                  # your own password
sudo passwd deploy      # another user's password
sudo passwd root        # root's password

İşlem bundan ibarettir. Aşağıdaki bölümlerde, düzeltme yapabileceğiniz oturumu kaybetmeden önce yeni parolanın çalıştığını doğrulama, bir betikten parola ayarlama, bir parolayı kasıtlı olarak geçersiz kılma ve parola zaten kaybedilmişse yeniden erişim sağlama konuları açıklanır.

Bir parolaya müdahale etmeden önce ikinci bir oturum açın

Şimdi ikinci bir SSH oturumu açın ve bağlı bırakın. Bu kılavuzdaki hataların neredeyse tamamı, kimliği doğrulanmış bir kabuk hâlâ açıkken iki dakikada düzeltilebilir. Son kabuk kapandıktan sonra ise konsola erişmek gerekir.

Zaten açık olan bir kabuk, bağlı olduğu hesabı değiştirdikten, kilitledikten veya süresi dolduktan sonra da çalışmaya devam eder. Bunun nedeni, SSH’nin kimlik bilgilerini oturum açma sırasında denetlemesi ve daha sonra yeniden denetlememesidir. İstisna sudo bileşenidir. Bu bileşen, zaman damgası sona erdiğinde parolanızı PAM (takılabilir kimlik doğrulama modülleri) üzerinden yeniden denetler. Varsayılan olarak bu süre, son istemden 15 dakika sonradır. Bu nedenle yeni parola, oturum açma sırasında değil, sudo parolayı bir sonraki istediğinde gerçek anlamda ilk kez sınanır.

İlk oturumu açık tutarken yeni parolayı ikinci oturumda sınayın.

passwd ile kendi parolanızı değiştirme

passwd
Changing password for deploy.
Current password:
New password:
Retype new password:
passwd: password updated successfully

passwd: password updated successfully, yalnızca /etc/shadow içindeki hash değerinin değiştirildiğini gösteren çıktıdır. Bunun dışındaki her çıktı eski parolanın korunduğu anlamına gelir.

Burada iki hata oluşur. passwd: Authentication token manipulation error ile başlayan ve ardından passwd: password unchanged gelen hata, yazdığınız mevcut parolanın yanlış olduğunu veya /etc/shadow dosya sisteminin yazılabilir olmadığını gösterir. Kurtarma modunda normal durum budur. You must choose a longer password., sıradan kullanıcılar için uzunluk ve benzerlik denetimleri uygulayan /etc/pam.d/common-password içindeki pam_unix bileşeninden kaynaklanır.

Çoğu VPS imajında varsayılan hesabın (ubuntu veya sağlayıcınızın kullandığı başka bir ad) parolası yoktur; yalnızca bir SSH anahtarı vardır. passwd denetlenecek mevcut bir parolaya sahip değildir, bu nedenle ilk istemi geçemez. Bunun yerine sudo passwd $USER kullanın. Bu yöntem çalışır, çünkü imajdaki sudoers drop-in dosyası bu hesabın sudo komutunu parola olmadan çalıştırmasına izin verir.

sudo passwd ile başka bir kullanıcının parolasını değiştirme

sudo passwd deploy

root hesabından eski parola istenmez. pam_unix, normal kullanıcılar için uygulanan parola gücü denetimlerini atlar. Bu nedenle root, kullanıcının kendisi için belirleyemeyeceği bir parola belirleyebilir.

Parolayı kilitlemek ayrı bir işlemdir. sudo passwd -l deploy, kayıtlı özetin önüne ! ekler. Böylece hiçbir parola bu özetle eşleşmez. Kilidi sudo passwd -u deploy ile kaldırır. Durumu sudo passwd -S deploy ile yeniden okuyun.

Parolayı kilitlemek, kullanıcının oturum açmasını engellemez. Kullanıcının ~/.ssh/authorized_keys dosyasındaki tüm anahtarlar çalışmaya devam eder. Bunun nedeni, public key authentication işleminin /etc/shadow dosyasını hiç okumamasıdır. Bir hesabı tamamen devre dışı bırakmak için hesabın kendisinin süresini dolmuş olarak ayarlayın:

sudo usermod --expiredate 1 deploy

Bu işlem, hesap son kullanma tarihini 1970 yılına ayarlar. Böylece sshd, hangi kimlik doğrulama bilgisi sunulursa sunulsun oturum açmayı reddeder. Bu ayarı sudo usermod --expiredate '' deploy ile geri alın.

passwd -d kullanmaktan kaçının. Bu komut, hesabı kilitlemek yerine boş parola belirler. nullok öğesini PAM yığınında hâlâ bulunduran eski bir sürümde boş parola herkes tarafından kullanılabilir.

VPS'te root hesabının parolaya ihtiyacı var mı?

Ubuntu, root hesabını kilitli olarak sunar. /etc/shadow, bir karma yerine ! içerir ve sudo passwd -S root, root L ile başlayan bir satır yazdırır. Bir parola belirlenene kadar root hesabında parola ile oturum açılamaz. Bu nedenle imaj, bunun yerine sudo yetkisine sahip bir kullanıcı sağlar. root hesabı yerine VPS'te en az ayrıcalıklı kullanıcı hesapları ile çalışılması gereken yöntemdir.

root parolası belirlemek tek bir işlev sağlar: sağlayıcının konsolu üzerinden erişim. Bu konsol, sanal makineye ağ yığınının altından bağlanır. Bu nedenle sshd yanlış yapılandırıldığında veya bir güvenlik duvarı kuralı hatalı olduğunda da çalışmaya devam eder. Ancak bunun bir maliyeti vardır. root hesabında parola varsa GRUB kurtarma menüsündeki root kabuğu root parolasını ister. Böylece unutulan parolayı sıfırlamak için kullanılacak araç, aynı parolanın arkasında kalır.

root parolası belirlemek, root hesabının SSH üzerinden oturum açabilmesini sağlamaz. Ubuntu, yalnızca anahtarlara izin veren PermitRootLogin prohibit-password ile gelir. Sunucunuzun gerçekte hangi ayarları kullandığını kontrol edin:

sudo sshd -T | grep -i permitrootlogin

sshd -T, her Include satırı çözümlendikten sonraki etkin yapılandırmayı yazdırır. Bu nedenle /etc/ssh/sshd_config.d/, ek yapılandırma dosyalarını içerdiğinde alınabilecek tek doğru yanıt budur.

chpasswd ile bir betikten parola ayarlama

passwd terminalden okur ve bir betik tarafından yönlendirilemez. chpasswd standart girdiden user:password çiftlerini, her satırda bir çift olacak şekilde okur.

printf '%s:%s\n' 'deploy' "$NEW_PASSWORD" | sudo chpasswd

Bu çalışır, ancak kabuk geçmişinize ve CI (sürekli entegrasyon) günlüklerinize düz metin bir parola yazar. Önce parolayı özetleyin:

HASH=$(openssl passwd -6)
printf '%s:%s\n' 'deploy' "$HASH" | sudo chpasswd -e

openssl passwd -6 parolayı yankılamadan iki kez ister, ardından $6$ ile başlayan bir SHA-512 crypt özeti yazdırır. -e, chpasswd öğesine ikinci alanın zaten özetlenmiş olduğunu bildirir; böylece bu alan /etc/shadow içine olduğu gibi kopyalanır. Özetin bir depoda veya CI değişkeninde tutulması güvenlidir ve düz metin, parolayı yazdığınız makineden hiçbir zaman ayrılmaz.

Ubuntu 24.04, passwd parolaları ayarladığında yeni parolaları yescrypt ($y$) ile özetler; openssl passwd -6 ise size SHA-512 sağlar. libxcrypt her iki biçimi de okuduğu için her ikisi de oturum açma sırasında doğrulanır. Bunların karıştırılması sorun oluşturmaz. openssl passwd -6, her Ubuntu LTS sürümünde aynı şekilde çalışır; chpasswd -c YESCRYPT ise aynı şekilde çalışmaz: 20.04 sürümündeki eski shadow paketi bu yöntem adını tanımaz.

Parolanın gerçekten değiştiği nasıl denetlenir?

Önce üst veriler incelenir, ardından oturum açma işlemiyle doğrulanır.

sudo passwd -S deploy
deploy P 08/01/2026 0 99999 7 -1

İkinci alan durum bilgisidir: kullanılabilir parola için P, kilitli hesap için L, hiç parola olmaması için NP kullanılır. Tarih, parolanın en son değiştirildiği zamandır; bu nedenle bugünün tarihini göstermelidir. Bu tarihten sonraki sayılar, aşağıda ele alınan parola yaşlandırma alanlarıdır.

Etkin ortamda yapılabilecek en güvenli test doğrudan sudo komutudur. sudo -k önbelleğe alınmış zaman damgasını siler ve sudo -v yeni bir istem görüntülenmesini zorunlu kılar. Yeni parola burada kabul edilirse PAM parolayı kabul etmiş demektir ve oturumunuzla ilgili hiçbir şey değişmez.

sudo -k && sudo -v

Başka bir hesabı test etmek için ayrıcalıksız bir kabuktan su - deploy çalıştırılır. sudo su - deploy çalıştırılmamalıdır; çünkü root hesabından hiçbir zaman parola istenmez ve bu test hiçbir şeyi kanıtlamaz. Yanlış parola su: Authentication failure iletisini görüntüler.

Asıl test, mevcut çalışma oturumu açık kalırken dizüstü bilgisayardan yeni bir SSH oturumuyla yapılır:

ssh -o PubkeyAuthentication=no deploy@203.0.113.10

Buradaki Permission denied (publickey)., sunucunun parola kimlik doğrulamasını hiç sunmadığı anlamına gelir; bu nedenle hiçbir parola değişikliğiyle oturum açılamaz. Permission denied, please try again., sunucunun parola kimlik doğrulamasını sunduğu ve girilen parolayı reddettiği anlamına gelir.

chage ile bir sonraki oturum açmada parola değişikliğini zorunlu kılma

sudo chage -d 0 deploy

-d 0 son değiştirme tarihini epoch değerine ayarlar. Böylece PAM parolayı süresi dolmuş olarak değerlendirir. Bir sonraki etkileşimli oturum açmada, kabuk vermeden önce mevcut parola, ardından yeni parola istenir. sudo passwd -e deploy tam olarak aynı işlemi yapar.

Bu yöntem yalnızca parola ile etkileşimli oturum açan hesaplarda kullanılmalıdır. Süresi dolmuş parola, anahtar tabanlı oturum açmaları da etkiler. Bunun nedeni, kimlik doğrulamasını anahtar gerçekleştirmiş olsa bile sshd'nin PAM hesap aşamasını çalıştırmasıdır. Betik içindeki ssh deploy@203.0.113.10 'systemctl restart app' komutu aşağıdaki hatayla başarısız olur ve durur:

Password change required but no TTY available.

Bu satırdan sonraki hiçbir işlem çalışmaz. İş yalnızca sıfır olmayan bir çıkış kodu bildirir.

Parola yaşlandırma alanlarının anlamı

sudo chage -l deploy
Last password change                                    : Aug 01, 2026
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

Bu sayılar, ilgili kullanıcının /etc/shadow içindeki satırındaki 4 ile 8 arasındaki alanlardır. Minimum gün (chage -m), kullanıcının parolayı yeniden değiştirmeden önce beklemesi gereken süredir. Bu, zorunlu değişiklikten sonra eski parolaya hemen dönülmesini engeller. Maksimum gün (chage -M), parolanın geçerli kaldığı süredir. Uyarı günleri (chage -W), oturum açma işlemlerinde uyarının gösterilmeye başladığı zamanı belirtir. Etkin olmayan günler (chage -I), parolanın süresi dolduktan sonra artık hiçbir şekilde kabul edilmemesinden önceki ek süredir. Hesap sona erme tarihi (chage -E) kesin bir tarihtir ve paroladan bağımsızdır.

sudo chage -M 90 -W 14 deploy

Bunu yalnızca bir politika gerektiriyorsa ayarlayın. NIST (ABD Ulusal Standartlar ve Teknoloji Enstitüsü), parola sürelerinin rutin olarak sona erdirilmesine karşı 2017 yılından beri tavsiyede bulunmaktadır. Bunun nedeni, kullanıcıları tek bir parolanın tahmin edilebilir varyasyonlarını kullanmaya yöneltmesidir. NIST, güvenlik ihlaline dair kanıt bulunduğunda parola değişikliğinin zorunlu tutulmasını önermektedir. Bir parola yöneticisinde saklanan uzun ve benzersiz parola ile anahtar tabanlı SSH, 90 günlük döngüden daha güvenlidir.

root parolası kaybedildiğinde ne yapılmalı

Sunucudaki herhangi bir hesap sudo çalıştırabiliyorsa kurtarılacak bir şey yoktur: sudo passwd root yeni bir parola belirler. Asıl zor durum, çalışan hiçbir oturum açma yönteminin bulunmamasıdır.

Aşağıdaki işlemlerin tamamı, çoğu panelde VNC (virtual network computing) veya seri konsol olarak listelenen sağlayıcı konsolunu gerektirir. Bu konsol, ağ yığınının altındaki sanal makineye bağlanır. Bu nedenle sshd ayarları ve güvenlik duvarı kuralları konsolu etkilemez.

  1. Panelden sunucuyu yeniden başlatın ve konsolu izleyin.
  2. GRUB menüsünü açın. Bulut imajlarında genellikle GRUB_TIMEOUT=0 ayarlı olur. Bu nedenle BIOS açılışında yeniden başlatma başlar başlamaz Shift tuşunu basılı tutun veya UEFI açılışında Esc tuşuna art arda basın.
  3. Advanced options for Ubuntu seçeneğini, ardından (recovery mode) ile biten girdiyi ve sonra kurtarma menüsündeki root seçeneğini seçin.
  4. Önce mount -o remount,rw / komutunu çalıştırın. Kurtarma işlemi root dosya sistemini salt okunur olarak bağlar. Bu nedenle bu komut çalıştırılmadan passwd, /etc/shadow dosyasına yazamadığı için passwd: Authentication token manipulation error hatasıyla başarısız olur.
  5. İhtiyaç duyduğunuz hesap için passwd ubuntu komutunu çalıştırın, ardından panelden yeniden başlatın.

root hesabının zaten bir parolası varsa ve kaybettiğiniz parola buysa kurtarma kabuğu bu parolayı ister ve bu yöntem kullanılamaz. Bunun yerine sağlayıcının kurtarma imajını başlatın. Ardından gerçek diski bağlayın ve parolayı disk üzerindeki sistem içinde değiştirin.

lsblk
sudo mount /dev/vda1 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt passwd ubuntu
sudo umount -R /mnt

Bölüm düzenini bu sayfadaki /dev/vda1 değerini kopyalamak yerine lsblk çıktısından okuyun. root bölümü büyük olan bölümdür. UEFI imajında bu bölüm, hiç /etc dizini içermeyen küçük bir EFI bölümünün yanında bulunur.

SSH parolanızı kabul etmeyi bıraktığında ne yapılmalı

Hâlâ açık olan oturumdan çalışın. Hiç oturum kalmadıysa konsolu kullanın.

Permission denied, please try again., sunucunun parola kimlik doğrulamasını sunduğu, ancak gönderdiğiniz parolayı reddettiği anlamına gelir. Yaygın nedenler Caps Lock'un açık olması veya konsol klavye düzeninin parolayı belirlerken kullandığınız düzenden farklı olmasıdır.

Permission denied (publickey)., sunucunun parola kimlik doğrulamasını hiç sunmadığı anlamına gelir. PasswordAuthentication no bir yerde ayarlanmıştır. Ubuntu 22.04 ve sonraki sürümlerde bu ayar genellikle ana dosyayı geçersiz kılan /etc/ssh/sshd_config.d/ altındaki bir drop-in dosyasında bulunur. Etkin değerleri okuyun:

sudo sshd -T | grep -Ei 'passwordauthentication|kbdinteractiveauthentication|permitrootlogin'

KbdInteractiveAuthentication yes, PasswordAuthentication no ile birlikte parolanın kullanılmasına yine izin verir; bunun nedeni keyboard-interactive yönteminin aynı PAM yığınını çalıştırmasıdır. Birini kapatıp diğerini açık bırakmak, yalnızca anahtar kullandığı düşünülen bir sunucunun yazılarak girilen parolaları kabul etmeye devam etmesine neden olur.

Bağlantı kesme iletisindeki Too many authentication failures, istemcinizin parolaya geçmeden önce birkaç anahtar sunduğu ve sunucunun varsayılan olarak 6 olan MaxAuthTries değerine ulaştığı anlamına gelir. Tek bir yöntemi zorlayın:

ssh -o IdentitiesOnly=yes -o PubkeyAuthentication=no deploy@203.0.113.10

Bir dakika önce çalışan bir portta görülen Connection refused, genellikle SSH'yi izleyen fail2ban hizmetinin tekrarlanan başarısız denemelerden sonra adresinizi yasakladığı anlamına gelir. Varsayılan yasaklama kuralı paketi düşürmek yerine reddeder. Bu nedenle bağlantı zaman aşımına uğramak yerine ret yanıtı hızla döner. Konsoldan sudo fail2ban-client status sshd yasaklanan adresleri listeler, sudo fail2ban-client set sshd unbanip 203.0.113.10 ise adresinizin yasağını kaldırır.

Parolalar bir geçiş aşamasıdır, anahtarlar nihai durumdur

SSH üzerinden çalışan bir parola, internetteki her tarayıcının tahmin etmeye çalışabileceği bir paroladır. Anahtar tabanlı kimlik doğrulamaya geçildiğinde tahmin denemeleri önemini yitirir. Bir anahtar çifti oluşturun, ortak anahtarı yükleyin ve başka hiçbir şeyi değiştirmeden önce ikinci bir terminalden anahtarın oturum açmanızı sağladığını doğrulayın. SSH anahtarı yönetiminin temelleri anahtar oluşturma, authorized_keys ve parola ifadelerini kapsar.

Ardından parola ile kimlik doğrulamayı devre dışı bırakın ve düzenlediğiniz dosyaya güvenmek yerine bunu sudo sshd -T ile doğrulayın. VPS üzerinde SSH'yi güçlendirme değiştirilmeye değer diğer sshd ayarlarını ele alır. Yeni bir VPS'te ilk on dakika ise bu işlemleri yeni bir sunucuda uygulanması gereken sıraya koyar.

Bundan sonra bir parolayı saklayın. Yalnızca anahtar kullanan bir sunucuda sshd yapılandırması bozulursa sunucuya yalnızca sağlayıcının konsolu üzerinden erişilebilir. Bu konsol da bir kullanıcı adı ve parola ister. Sakladığınız güçlü parolaya sahip bir hesap, beş dakikalık düzeltme ile yeniden kurulum arasındaki farkı belirler.

FAQ

Eski parolayı bilmiyorsam VPS üzerindeki root parolasını nasıl değiştiririm?

sudo çalıştırabilen bir kullanıcıyla oturum açın ve sudo passwd root komutunu çalıştırın. sudo sizi zaten doğruladığı için eski parolayı sormadan yeni bir parola belirler. Sistem üzerindeki hiçbir hesap sudo çalıştıramıyorsa sağlayıcının konsolunu açın, GRUB kurtarma menüsünden yeniden başlatın, root kabuk girdisini seçin, mount -o remount,rw / komutunu ve ardından passwd komutunu çalıştırın. root hesabının zaten bir parolası varsa ve kaybettiğiniz parola buysa kurtarma kabuğu bu parolayı ister. Bu durumda geriye, sağlayıcının rescue image ortamını kullanıp diski bağlamak ve chroot işlemi uygulamak kalır.

passwd neden "Authentication token manipulation error" iletiyor?

Bu iletiye iki neden yol açar. Yaygın neden, Current password: istemindeki yanlış yanıttır. Altındaki passwd: password unchanged satırı, hiçbir şeyin yazılmadığını doğrular. Diğer neden, yazılamayan bir dosya sistemidir. Kurtarma modunda / salt okunur olarak bağlandığı için bu durumla karşılaşılır. mount -o remount,rw / komutunu çalıştırın ve yeniden deneyin.

Linux parolamı değiştirmek sudo parolamı da değiştirir mi?

Evet. sudo kendisine ait bir parolaya sahip değildir. Sizi PAM aracılığıyla SSH ve su tarafından da kullanılan aynı /etc/shadow girdisine göre doğrular. Bu nedenle her hesap için tek bir parola vardır. Değişiklikten sonraki ilk sudo isteminin gerçek test olmasının nedeni de budur. Çalışan oturumunuz devam ederken bu istemi zorlamak için sudo -k && sudo -v komutunu çalıştırın.

Parolamı değiştirmek SSH anahtarlarımı veya açık oturumlarımı etkiler mi?

Hayır. Açık anahtarlı kimlik doğrulama /etc/shadow dosyasını okumaz. Bu nedenle parola değişikliğinden, passwd -l işleminden ve chage -d 0 işleminden sonra anahtarlar çalışmaya devam eder. SSH kimlik bilgilerini yalnızca oturum açma sırasında denetlediği için açık oturumlar devam eder. Etkin bir oturumda değişen tek şey, 15 dakikalık zaman damgası sona erdiğinde yeni parolayı bir kez isteyen sudo bileşenidir.

Bir kullanıcının bir sonraki oturum açışında parolasını değiştirmesini nasıl zorunlu kılarım?

sudo chage -d 0 deploy komutunu veya aynı işlemi gerçekleştiren sudo passwd -e deploy komutunu çalıştırın. Saklanan son değiştirme tarihi epoch değerine alınır, PAM parolayı süresi dolmuş kabul eder ve bir sonraki etkileşimli oturum açma işleminde kabuk başlatılmadan önce yeni bir parola belirlenmesi gerekir. Bunu SSH üzerinden betikler tarafından kullanılan bir hesapta yapmayın. Aksi durumda etkileşimsiz komut Password change required but no TTY available. ile başarısız olur ve hiç çalışmaz.

#vps#ubuntu#passwords#ssh#server-security