Sistem SSH'yi reddediyor ve sistemd kurulumundan sonra 'önyükleme' durumunda kalıyor


12

Azure'da oluşturulan Linux Ubuntu VM'lerinde (14.04 LTS) çoğaltılabilir bir sorunum var.

systemdPaketi komut dosyası aracılığıyla yükledikten sonra , sistem yeni ssh bağlantılarını sonsuza dek reddeder.

Sistem açılıyor.

Bağlantı xxx.xxx.xxx.xxx tarafından kapatıldı

Aktif ssh bağlantısı yine de korunur. Sistemde /etc/nologindosya yok .

Gördüğüm tek seçenek, sorunu çözen bir donanım sıfırlaması. Ama bundan nasıl kaçınırım?

İşte kullanıyorum komut dosyası:

#!/bin/bash

# Script input arguments
user=$1
server=$2

# Tell the shell to quote your variables to be eval-safe!

printf -v user_q '%q' "$user"
printf -v server_q '%q' "$server"
#

SECONDS=0
address="$user_q"@"$server_q"

function run {
    ssh "$address" /bin/bash "$@"
}

run << SSHCONNECTION
    # Enable autostartup

        # systemd is required for the autostartup
        sudo dpkg-query -W -f='${Status}' systemd 2>/dev/null | grep -c "ok installed" > /home/$user_q/systemd-check.txt
        systemdInstalled=\$(cat /home/$user_q/systemd-check.txt)

        if [[ \$systemdInstalled -eq 0 ]]; then
            echo "Systemd is not currently installed. Installing..."

            # install systemd
            sudo apt-get update
            sudo apt-get -y install systemd

        else
            echo "systemd is already installed. Skipping this step."
        fi

SSHCONNECTION

Sistem askıda mı yoksa güvenli kabuk arka plan programını başlatmıyor mu? Soru bir şeyi belirtir; direğin gövdesi, diğerinin iyi olabileceğini ima eder.
DopeGhoti

@DopeGhoti Makineye uzaktan bağlanamadığım için neler olup bittiğini kontrol etmemin bir yolu yok. Soruyu daha açık hale getirmek için güncelleyeceğim.
Alex

Yanıtlar:


15

/etc/nologinSystemd kurulumundan sonra kaldırılmayan bir dosya (içeriği "Sistem önyükleniyor.") Olduğundan şüpheleniyorum .

Sizi etkileyen şey, geçen Aralık ayında Ubuntu'nun BTS'inde bildirilen bir hatadır . Bu nedeniyle etmektir /var/run/nologindosyası (= /run/nologinberi /var/runsembolik köprü ise /run) systemd yüklemenin sonunda kaldırılmaz.

/etc/nologinstandart nologin dosyasıdır. PAM modülü ( ) /var/run/nologintarafından kullanılabilen alternatif bir dosyadır .nologinman pam_nologin

nologinDosyaların hiçbirinin kullanıcı köküne göre bağlantıları etkilemediğini, yalnızca normal kullanıcıların oturum açmasının engellendiğini unutmayın.


Sorunu yeniden oluşturdum, / etc / nologin dosyası yok. Etkin SSH oturumu korunur, ancak makineyi yeniden başlatana kadar yenileri reddedilir.
Alex

Ben de kontrol ettim /etc/shadowve hesap kilitli değil
Alex

@Alex Yanıt güncellendi.
17'de xhienne

10

@xhienne bana doğru yönü verdi.

Dosya sistemi üzerinden arama yaptıktan sonra /run/nologin(@xhienne önerilen / etc / nologin) dosyasını buldum , sorunu çözdü.

Mevcut durum /usr/lib/tmpfiles.d/systemd.conf

Bu adımı senaryomda kullanacağım.

sudo rm /run/nologin

Çalıştığıma sevindim. Cevabımı güncelledim.
17'de xhienne

2
Note:  This answer is applicable whether or not systemd was recently installed or not.
       The issue was observed even after systemd had been installed a long time.

Mageia dağıtım hata izleyicisi açık ilgili bir sorun var gibi görünüyor: Hata 21080 - ssh oturum açma / run / nologin tarafından yeniden başlatıldıktan sonra devre dışı .

Bu sorunu oldukça sık deneyimledikten sonra, izleyiciyi bulmak, / run / login dosyasını kaldırmaktan daha uygun bir geçici çözümün belirlenmesine yardımcı oldu .

Bu hata izleyicideki bilgi sorgularıyla ilgili bazı veriler:

$ ls -l /run/nologin 
-rw-r--r-- 1 root root 42 Mar  6 10:11 /run/nologin
$ cat /run/nologin
"System is booting up. See pam_nologin(8)"
$ date
Tue Mar  6 11:10:38 CST 2018
$ uptime
11:15:10 up  1:04,  0 users,  load average: 0.07, 0.07, 0.08
$ systemctl status systemd-user-sessions.service
● systemd-user-sessions.service - Permit User Sessions
   Loaded: loaded (/usr/lib/systemd/system/systemd-user-sessions.service; static
   Active: inactive (dead)
     Docs: man:systemd-user-sessions.service(8)
$ systemctl show -p Requires,Wants,Requisite,BindsTo,PartOf,Before,After  systemd-user-sessions.service --no-pager
Requires=system.slice sysinit.target
Requisite=
Wants=
BindsTo=
PartOf=
Before=getty@tty1.service prefdm.service crond.service multi-user.target plymouth-quit-wait.service session-c2.scope display-manager-failure.service systemd-ask-password-wall.service session-c1.scope user@983.service shutdown.target user@1000.service user-983.slice user-1000.slice plymouth-quit.service
After=system.slice systemd-journald.socket remote-fs.target network.target systemd-journal-flush.service sysinit.target nss-user-lookup.target basic.target

Hata izleyici ve yukarıdaki bilgiler, sorunun aslında systemd-user-sessions.service arka plan programının başlatılamamasından kaynaklandığını göstermektedir .

Aslında benim durumumda olan budur, bu nedenle aşağıdaki geçici çözüm yasaklanmış giriş koşulunu geçici olarak düzeltir:

$ sudo systemctl start systemd-user-sessions.service

Bunu yaptıktan sonra, / run / nologin dosyası artık mevcut değildir ve biri başka bir sistemden SSH olabilir. Ancak, bazen kullanıcının etkilenen sistemin konsoluna erişimi olmadığından bunun güvenilir olmadığını unutmayın.


0

Ben de aynı sorunu yaşadım ama bence birkaç senaryo yaratabilir.

Benim durumumda, uzaktan erişimi yeniden etkinleştirmek için uzaktan sunucumuza doğrudan erişim için KVM istemek zorunda kaldım ve sonra:

# 1. Start SSH service
/etc/init.d/ssh start

# 2. Remove the nologin file
rm /run/nologin

Ancak KVM ekranında acil durum moduna geçtiğini görebiliyordum!

Daha önce, yeni bir UUID oluşturan ve / etc / fstab dosyasını eklemeyi unuttum bazı disk / bölüm değişiklikleri (artan inode) yapıyordum.

Komutu verdikten sonra:

blkid

... ve fstab dosyasına yeni UUID yapıştırarak kopya, hiçbir sorun ile sunucuyu yeniden yeniden başardık ve bundan sonra uzak SSH erişim iyi oldu.


0

/ Etc / ssh / sshd_config içinde UsePAM öğesini hayır olarak ayarlayın

UsePAM no

Bu ne yapardı ve sonuçları ne olurdu?
Kusalananda

Bu yanıt bu durum için geçerli görünmüyor - kullanıcının neden "Sistem açılıyor" metnini gördüğünü veya systemd kurulumunun bozuk yapılandırmayı nasıl oluşturduğunu açıklamıyor.
Jeff Schaller
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.