Увімкнути вхід у систему лише для ключа-ssh для мого Mac для 1 користувача


21

У мене є Macbook Air, до якого я б хотів дозволити віддалений доступ до SSH без пароля. Я створив користувача під назвою, з remotepairяким я увійшов і перевірив, чи можу я використовувати Mac. Я також додав цього користувача до списку дозволених користувачів служби "Видалити вхід" та ввімкнув службу. Це все було зроблено на панелі управління "Обмін".

Я дістав відкритий ключ іншого комп'ютера і додав його до файлу /Users/remotepair/.ssh/authorized_keys. Коли інший комп’ютер ssh remotepair@<my ip>все ж таки отримує запит на введення пароля.

Як вимкнути цей запит на пароль?


1
Я рекомендую додати назву запитання "Аутентифікація лише на ключ SSH" - так, як тепер вона читається, звучить як звичайне вхід у вікно входу в графічний інтерфейс.
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 за допомогою GUI System Preferences.app, і між редагуванням конфігурації не потрібно перезапускати демон.


1

Ви повинні перевірити дозволи довірених каталогів: /Users/remotepair/і /Users/remotepair/.sshвони не повинні дозволяти доступу для запису з боку інших користувачів. Моя .sshмає права доступу лише для власника.

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


1

У тестовій системі тут для відключення запиту SSH потрібно додати два наступні рядки /etc/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no

До коментарів sshd_configтакож рекомендується додати наступний рядок:

UsePAM no
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.