
Мне нужно получить беспарольный SSH-доступ с моего Macbook (клиент) к серверу Ubuntu 22.04 (сервер). ssh_config на клиенте и sshd_config на сервере остаются оригинальными.
Все шаги, выполненные на клиенте:
- Создать ключ (без парольной фразы):
- Скопируйте этот ключ на сервер:
- Проверьте ssh-соединение:
подключение успешное, но пароль все равно запрашивается (((
В чем дело?
РЕШЕНИЕ:
Добавить IdentityFile ~/.ssh/id_macbook
в клиентский файл /etc/ssh/ssh_config
решение1
В журналах вашего клиента SSH указано, что клиентявляетсяпредлагает ключ, но сервер непринимаяэто. Это значит, что следующим шагом будет взглянуть на вашсервера sshd
журналы ( journalctl -S -1h
), так как они будут содержать причину отклонения ключа — если не по умолчанию, то уж точно после повышения уровня журнала (например, добавление LogLevel VERBOSE
или DEBUG
было /etc/ssh/sshd_config
бы хорошим началом).
В этом случае:
Сгенерированный вами ключ:не тот же ключвы пытаетесь подключиться к. Ключ, который вы сгенерировали и загрузили, хранится в , но вы никогда не говорили SSH-клиенту использовать этот ключ при подключении – как вы можете видеть из журналов клиента, он по-прежнему использует ключ по умолчанию, который является совершенно другим файлом.
~/.ssh/id_macbook
~/.ssh/id_rsa
В журналах sshd будет указано, что предлагаемый ключ не найден в author_keys.
Либо укажите правильный ключ, используя
-i <file>
опцию при подключении (или через IdentityFile в ~/.ssh/config), либо загрузите свой ключ в ssh-agent, используяssh-add <file>
.Ваш
authorized_keys
файл настроен надоступный для записи во всем мире(возможно, из-за странныхumask
настроек на сервере?), что, скорее всего, заставляет sshd игнорировать файл по соображениям безопасности.В журналах sshd будет указано, что разрешения «слишком открыты».
Измените его так
chmod
, чтобы он был доступен только владельцу.