![Доступ по SSH с закрытым сертификатом работает с локального хоста, но не с удаленного](https://rvso.com/image/169433/%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%20%D0%BF%D0%BE%20SSH%20%D1%81%20%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%BC%20%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D0%BC%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82%20%D1%81%20%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%85%D0%BE%D1%81%D1%82%D0%B0%2C%20%D0%BD%D0%BE%20%D0%BD%D0%B5%20%D1%81%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE.png)
Я новичок в Gnu/Linux и UNIX. Играю в игру, чтобы изучить основы этой ОС.
В рамках игры, в которую я играю, мне необходимо войти на удаленный сервер с помощью ssh
, имея только сертификат закрытого ключа и имя пользователя (без пароля).
- Если я вхожу в систему с помощью SSH с удаленной машины (где я вошел под другим именем пользователя), мне предоставляется доступ без пароля.
- Если я попытаюсь войти в систему с локального компьютера, SSH вместо этого запрашивает у меня пароль.
Является ли это следствием конфигурации SSH сервера, к которому я пытаюсь получить доступ?
Я имею в виду, что SSH может применять различную политику входа, если я вхожу с локального хоста (в данном случае сервера) и если я вхожу с удаленной машины (в данном случае моего ПК)?
Большое спасибо.
С наилучшими пожеланиями.
решение1
Является ли это следствием конфигурации SSH сервера, к которому я пытаюсь получить доступ?
На основании данных, которыми вы поделились, мы не можем быть уверены. Вы даже можете подключаться к двум разным, независимо настроенным демонам SSH, работающим на одной и той же системе.
Я имею в виду, что SSH может применять различную политику входа, если я вхожу с локального хоста (в данном случае с сервера) и если я вхожу с удаленной машины (в данном случае с моего ПК)?
Да, SSH-серверы могут применять различные политики в зависимости от различных свойств входящих подключений.
Например, Match
ключевое слово в sshd
конфигурации OpenSSH позволяет вам определять условные блоки, группирующие директивы, которые применяются (и переопределяют ранее заданные) только в том случае, если выполняется список указанных условий (подробнее см.man 5 sshd_config
).
Добавляем этот блок /etc/ssh/sshd_config
(точное местоположение может отличаться в зависимости от вашей системы):
PubkeyAuthentication yes
Match Address "!127.0.0.1,!::1,*"
PubkeyAuthentication no
поручит sshd
:
- разрешить аутентификацию с открытым ключом по умолчанию;
- запретить аутентификацию с открытым ключом для подключений, поступающих с адресов, отличных от
127.0.0.1
и::1
.
(Примечание, избавляющее от головной боли: как указано вman 5 ssh_config
, "УЗОРЫ",
[...] отрицательный результат сопоставления сам по себе никогда не даст положительного результата. [...] Решение здесь заключается во включении термина, который даст положительное сопоставление, например, подстановочного знака [...]
поэтому "!127.0.0.1,!::1,*"
включает в себя a *
в конце).