Невозможно подключиться к SSH, отказано в доступе. Открытый ключ

Невозможно подключиться к SSH, отказано в доступе. Открытый ключ

Я попытаюсь обобщить это как можно лучше и как можно подробнее. Я развернул свой первый сайт Django на сервере Ubuntu (23.04) на Linode вчера вечером после того, как прочитал эту статью Corey Schafer Python Djangoруководство. Все прошло хорошо, и я настроил SSH, как показано в видеоуроке, примерно через 23–25 минут без проблем. Я проверил, что все работает в какой-то момент. Я вышел с сервера и проверил, что могу снова войти через SSH без каких-либо проблем. Продолжая, я потратил еще час или два и настроил кучу других вещей и убедился, что сайт работает, прежде чем лечь спать и выйти с сервера. Сегодня я вернулся, чтобы подключиться к серверу, и меня встретило сообщениеPermission denied (publickey).

Зная, что я добавил брандмауэр после всего этого, я подумал, что здорово, что я, вероятно, заблокировал себя от ssh-соединений или что-то в этом роде. Однако после некоторого гугления я наткнулся на этот модификатор ssh -vT user@IPи быстро увидел, что он действительно, похоже, пытается подключиться по ssh, и соединение устанавливается, но оно просто не устанавливается по причинам, которые я не совсем понимаю.

Затем я попытался войти в систему как пользователь root через Linodes Weblish и успешно смог войти, а также попытался проверить несколько вещей.

• Сначала я проверил, есть ли в указанном месте папка /home/user/.ssh, содержащая файл с ключом.

sudo chmod 700 ~/.ssh/• Во-вторых, я проверил разрешения, просмотрев видеоинструкцию по папке ~/.ssh/ и ее содержимому, и снова выполнил следующие две команды.sudo chmod 600 ~/.ssh/*

Результатом является следующее для папки ssh в моем домашнем каталоге.

lewpiper@django-server:~$ la -la
total 40
drwxrwxrwx 6 lewpiper lewpiper 4096 Jun 14 06:37 .
drwxr-xr-x 3 root     root     4096 Jun 14 05:22 ..
-rw------- 1 lewpiper lewpiper  100 Jun 14 05:34 .bash_history
-rw-r--r-- 1 lewpiper lewpiper  220 Jun 14 05:22 .bash_logout
-rw-r--r-- 1 lewpiper lewpiper 3771 Jun 14 05:22 .bashrc
drwx------ 4 lewpiper lewpiper 4096 Jun 14 06:09 .cache
drwxrwxr-x 3 lewpiper lewpiper 4096 Jun 14 06:37 .local
drwxr-xr-x 8 lewpiper www-data 4096 Jun 14 06:36 Portfolio
-rw-r--r-- 1 lewpiper lewpiper  807 Jun 14 05:22 .profile
drwx------ 2 lewpiper lewpiper 4096 Jun 15 06:03 .ssh
-rw-r--r-- 1 lewpiper lewpiper    0 Jun 14 05:33 .sudo_as_admin_successful

Ниже приведены права доступа к файлу внутри папки ssh в домашнем каталоге.

lewpiper@django-server:~/.ssh$ ls -la
total 12
drwx------ 2 lewpiper lewpiper 4096 Jun 15 06:03 .
drwxrwxrwx 6 lewpiper lewpiper 4096 Jun 14 06:37 ..
-rw------- 1 lewpiper lewpiper  749 Jun 14 05:32 authorized_keys

• В-третьих, я настраиваю брандмауэр на сервере, и текущие разрешенные типы подключений следующие.

lewpiper@django-server:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
22/tcp (v6)                ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)  

• Наконец, я перешел к /etc/ssh/sshd_configфайлу и пока включил PasswordAuthentication снова, пока не доберусь до сути проблемы с ssh. Так что пока я могу войти в систему, не используя веб-предложения Linode. Однако после этого я попытался перезапустить службу ssh на сервере с помощью следующей команды, sudo systemctl restart sshdкак сказано в руководстве, которую следует сделать при редактировании этого файла. Вместо этого я получил ошибку. Failed to restart sshd.service: Unit sshd.service not found.Я помню, что получал это сообщение вчера вечером, когда настраивал сервер, и быстрый поиск в Google показал, что название службы изменилось, поэтому я попробовал, sudo systemctl restart sshи это, похоже, помогло вчера вечером, но мне интересно, был ли я неправ в этом.

Ниже представлен файл sshd_config в том виде, в котором он у меня есть сейчас, но обратите внимание, что я изменил аутентификацию по паролю на yes, чтобы иметь возможность войти в систему без необходимости использования сгенерированного ключа RSA, что и является моей проблемой.

LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
KbdInteractiveAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the KbdInteractiveAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via KbdInteractiveAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and KbdInteractiveAuthentication to 'no'.
UsePAM yes

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
PrintMotd no
#PrintLastLog yes
#TCPKeepAlive yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

# override default of no subsystems
Subsystem       sftp    /usr/lib/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       PermitTTY no
#       ForceCommand cvs server

Вопросы: Итак, мой вопрос здесь состоит из двух частей. Во-первых, я что-то упустил, что я мог бы сделать, чтобы лучше устранить причину этого, или я мог бы попробовать? Во-вторых, если нет других рекомендуемых способов устранения неполадок, мне просто попробовать удалить свой файл authorized_keys на сервере и безопасно скопировать его на сервер? Обратите внимание, я даже не уверен, сработает ли это, потому что я не уверен, что проблема в этом. У меня есть подозрение, что я что-то упускаю или в сообщениях, о которых Failed to restart sshd.service: Unit sshd.service not found.я упоминал ранее, есть что-то еще. Также есть ли какие-либо мысли просто перезагрузить сервер? Звучит странно, но, возможно, что-то вроде брандмауэра или чего-то еще перезагрузится, и тогда все будет хорошо.

Связанный контент