Я был необъяснимо заблокирован из моего экземпляра Lightsail. У меня настроен SSH, чтобы он запрашивал не только ключ, но и аппаратный токен. Я использовал это в течение нескольких месяцев, но после недавнего перезапуска он больше не принимает мой аппаратный токен.
При контакте с Amazon выясняется, что после создания моментального снимка сбойного экземпляра при первом запуске в экземпляр можно вставить сценарий однократного запуска. Учитывая этот факт, я написал простой скрипт для изменения /etc/pam.d/sshd и / etc / ssh / sshd_config, чтобы запросить только сертификат ключа.
Вот в чем проблема, несмотря на то, что я стараюсь, кажется, что скрипт запуска полностью игнорируется. Я даже написал вывод в HTML-файл, чтобы увидеть, что происходит, но он никогда не существует. вот мой скрипт запуска:
#!/bin/bash
#Test to see if script executed & create file
/bin/echo "Script Running" > /var/www/html/games/public/script.html
#Remove yubico
/usr/bin/apt remove --purge libpam-yubico >> /var/www/html/psychoticgames/public/script.html
#Correct Pam files to remove yubikey
/bin/grep "#@" /etc/pam.d/sshd | /usr/bin/tr -d '#' | /bin/grep -v "^$" | /bin/grep -v "yubi"> /etc/pam.d/sshd.new
/bin/grep -v "#" /etc/pam.d/sshd | /bin/grep -v "^$" | /bin/grep -v "yubi">> /etc/pam.d/sshd.new
/bin/mv /etc/pam.d/sshd /etc/pam.d/sshd.bak
/bin/mv /etc/pam.d/sshd.new /etc/pam.d/sshd
/bin/grep "#@" /etc/pam.d/sudo | /usr/bin/tr -d '#' | /bin/grep -v "^$" | /bin/grep -v "yubi"> /etc/pam.d/sudo.new
/bin/grep -v "#" /etc/pam.d/sudo | /bin/grep -v "^$" | /bin/grep -v "yubi">> /etc/pam.d/sudo.new
/bin/mv /etc/pam.d/sudo /etc/pam.d/sudo.bak
/bin/mv /etc/pam.d/sudo.new /etc/pam.d/sudo
#Test to see if script PAM complete
/bin/echo "Script Pam Complete" >> /var/www/html/games/public/script.html
#Correct /etc/ssh/sshd_config to not ask for Yubikey
/usr/bin/find /etc/ssh/sshd_config -type f -exec sed -i 's/ChallengeResponseAuthentication yes/#ChallengeResponseAuthentication yes/g' {} \;
/usr/bin/find /etc/ssh/sshd_config -type f -exec sed -i 's/AuthenticationMethods/#AuthenticationMethods/g' {} \;
#Test to see if script complete
/bin/echo "Script Complete" >> /var/www/html/games/public/script.html
/bin/chown ubuntu:www-data /var/www/html/games/public/script.html
/bin/chmod 644 /var/www/html/games/public/script.html
service ssh restart
Все, о чем я могу думать, это то, что Amazon запускает сценарии запуска или этот формат неверен. Как bash-скрипт, он отлично работает на моей тестовой машине, поэтому я понятия не имею, LightSail игнорирует его.