Saya memiliki masalah yang dapat direproduksi di Linux Ubuntu VMs (14,04 LTS) yang dibuat di Azure.
Setelah menginstal systemd
paket melalui skrip, sistem menolak koneksi ssh baru, tanpa batas.
Sistem sedang boot.
Koneksi ditutup oleh xxx.xxx.xxx.xxx
Koneksi ssh aktif tetap dipertahankan. Tidak ada /etc/nologin
file di sistem.
Satu-satunya opsi yang saya lihat adalah pengaturan ulang yang memecahkan masalah. Tetapi bagaimana saya menghindarinya?
Berikut ini skrip yang saya gunakan:
#!/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
Jawaban:
Saya curiga ada
/etc/nologin
file (yang isinya adalah "System booting.") Yang tidak dihapus setelah instalasi systemd.[pembaruan] Yang memengaruhi Anda adalah bug yang dilaporkan di BTS Ubuntu Desember lalu. Ini karena
/var/run/nologin
file (=/run/nologin
karena/var/run
merupakan symlink ke/run
) yang tidak dihapus pada akhir instalasi systemd./etc/nologin
adalah file nologin standar./var/run/nologin
adalah file alternatif yang dapat digunakan olehnologin
modul PAM (man pam_nologin
).Perhatikan bahwa tidak ada
nologin
file yang memengaruhi koneksi oleh root pengguna, hanya pengguna biasa yang tidak bisa masuk.sumber
/etc/shadow
dan akun tidak dikunci@xhienne memberiku arah yang benar.
Setelah mencari melalui sistem file saya menemukan
/run/nologin
(@xhienne menyarankan / etc / nologin) file, menghapus yang memecahkan masalah.Kondisi ada di
/usr/lib/tmpfiles.d/systemd.conf
Saya akan memasukkan langkah ini dalam skrip saya.
sumber
Pelacak bug distribusi Mageia tampaknya memiliki masalah terkait yang terbuka: Bug 21080 - ssh login dinonaktifkan oleh / run / nologin setelah reboot .
Setelah mengalami masalah ini cukup sering, menemukan pelacak membantu mengidentifikasi solusi yang lebih tepat daripada hanya menghapus file / run / login .
Berikut adalah beberapa data yang terkait dengan permintaan informasi di pelacak bug itu:
Pelacak bug dan informasi di atas tampaknya menunjukkan bahwa masalah sebenarnya disebabkan oleh kegagalan untuk memulai daemon systemd-user- session.service.
Inilah sebenarnya yang terjadi dalam kasus saya, jadi solusi berikut ini untuk sementara memperbaiki kondisi login yang terlarang:
Setelah melakukan ini, file / run / nologin tidak lagi ada, dan, seseorang dapat SSH dari sistem lain. Perhatikan, bagaimanapun, bahwa ini tidak dapat diandalkan karena kadang-kadang pengguna tidak memiliki akses ke konsol dari sistem yang terpengaruh.
sumber
Saya memiliki masalah yang sama persis ini tetapi saya pikir beberapa skenario dapat membuatnya.
Dalam kasus saya, untuk mengaktifkan akses jarak jauh lagi saya harus meminta KVM untuk akses langsung ke server jarak jauh kami dan kemudian:
Tetapi pada layar KVM saya benar-benar bisa melihat bahwa itu boot ke mode darurat!
Sebelumnya, saya telah membuat beberapa perubahan disk / partisi (meningkatkan inode) yang menghasilkan UUID baru dan lupa menambahkannya ke file / etc / fstab.
Setelah mengeluarkan perintah:
... dan menyalin paste UUID baru pada file fstab, saya dapat me-reboot server lagi tanpa masalah dan akses SSH jauh baik-baik saja setelah itu.
sumber
Di / etc / ssh / sshd_config atur UsePAM ke no
sumber