Разрешить вход через ssh-key на мой Mac для 1 пользователя

21

У меня есть Macbook Air, к которому я хотел бы разрешить удаленный доступ по SSH без пароля. Я создал пользователя с именем, в remotepairкоторый я вошел, и подтвердил, что могу использовать Mac. Я также добавил этого пользователя в список разрешенных пользователей сервиса «Удалить логин» и включил сервис. Все это было сделано в панели управления «Общий доступ».

Я получил открытый ключ другого компьютера и добавил его в файл /Users/remotepair/.ssh/authorized_keys. Когда другой компьютер, ssh remotepair@<my ip>я все еще получаю запрос пароля.

Как отключить эту подсказку пароля?

Джейсон
источник
1
Я рекомендую добавить «Проверка подлинности только по ключу SSH» к заголовку вашего вопроса - способ его чтения теперь звучит как обычный вход в систему через GUI.
NReilingh

Ответы:

27

Чтобы отключить аутентификацию по паролю, вам нужно отредактировать /etc/sshd_config. В Terminal:

sudo vim /etc/sshd_config

(или замените на ваш любимый редактор)

Ищите строку:

#ChallengeResponseAuthentication yes

И измените его на:

ChallengeResponseAuthentication no

То есть удалите #в начале и измените yesна no.

Все последующие входы в систему ssh теперь ТРЕБУЮТ использовать ключ ssh и не будут запрашивать пароль. Убедитесь, что ваш ключ ssh работает перед этим, если у вас нет локального доступа! Нет необходимости перезапускать демон ssh или что-либо еще, потому что он запускается по требованию для каждого нового входящего соединения. Обратите внимание, что вы также можете увидеть PasswordAuthenticationстроку, но по умолчанию noуже.

Если ваши ssh-ключи не работают, тогда это отдельная проблема, но это отвечает на вопрос, как он задан сейчас :)

цезий
источник
Мне также нужно добавить пользователя в настройку AllowUser. Я могу только предположить, что установка GUI также не изменила эту текстовую строку.
Джейсон
7
Обратите внимание, что в более поздних версиях Mac OS X (определенно в El Capitan) sshd_config был перемещен в /etc/ssh/.
zelk
2
Обратите внимание, что для MacOS Sierra (v10.12.x) значение по умолчанию для PasswordAuthenticationизменилось на yes, поэтому обязательно измените его на no.
Трэвис Кларк,
3

Чтобы обновить ответ для macOS Sierra (в частности, 10.12.6), кажется, что файл конфигурации теперь /etc/ssh/sshd_config

2 строки должны быть незакомментированы + изменены, чтобы полностью отключить аутентификацию по паролю: (Это строки с 57 по 62 включительно в sshd_configфайле по умолчанию )

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

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

Как упоминалось ранее, вы можете включить / отключить доступ по ssh из графического интерфейса System Preferences.app, и перезапуск демона не требуется между редактированием конфигурации.

Иван Григорьевич
источник
1

Вы должны проверить разрешения соответствующих каталогов: /Users/remotepair/и /Users/remotepair/.sshони не должны разрешать доступ на запись «другим» пользователям. Мой .sshимеет права доступа только для владельца.

Также в удаленной системе выполните a, ssh -v remotepair@yoursystemчтобы увидеть, какие методы авторизации разрешены и предприняты. Высматривать Authentications that can continue: publickey,password,keyboard-interactive. Может быть, вы должны включить RSAAuthenticationв своей системе.

vilmoskörte
источник
1

В тестовой системе отключение приглашения SSH требует добавления следующих двух строк /etc/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no

В комментариях sshd_configтакже рекомендуется добавить следующую строку:

UsePAM no
lava37
источник