Як користуватися ключами SSH та відключити автентифікацію пароля


12

Я намагаюся отримати доступ до Mac віддалено (у мене є фізичний доступ до цього Mac) через SSH з клієнтського комп'ютера Linux. Моя мета - отримати доступ до цього Mac за межами мережі. Перенаправлення портів встановлюється на маршрутизаторі. З мого клієнтського комп'ютера я можу ssh user@ipкористуватися загальнодоступною IP-адресою, і я можу потрапити в Mac, тому переадресація портів працює.

Тепер я хочу встановити ключі SSH. Я створив SSH ключі на своєму клієнтському комп'ютері, але я хотів спочатку запустити SSH Daemon під час налаштування Mac. Я редагував /etc/ssh_configі встановлював PasswordAuthentication no. Я перезапустив SSH з цими командами:, sudo launchctl unload /System/Library/LaunchDaemons/ssh.plistтоді sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist. Коли я знову намагаюся ввести SSH у клієнта, він все ще запитує мій пароль.

Я поглянув на цю публікацію і з відповіді, яку я додав UsePAM noу конфігураційний файл і знову запустив службу launchctl. Мені все ще пропонується ввести пароль.

Я також спробував рішення тут . Мені все ще пропонується ввести пароль.

Як настроїти ssh_configтак, щоб він не запитував пароль і приймав лише ключі SSH? Хіба я не перезапускаю демона належним чином? Чи є ще один крок, який я пропускаю?

Відповіді:


13

Я редагував неправильний файл конфігурації! Замість цього /etc/ssh_configя редагував private/etc/sshd_config. Я думаю, що це, ймовірно, спрацювало б, якби я редагував /etc/sshd_configвідповідно до оновленої відповіді від @GhostLyrics, але я цього ще не перевіряв, тому не можу сказати точно. Після цього я перезапустив службу sudo launchctl stop com.openssh.sshdі потім, sudo launchctl start com.openssh.sshdі я зміг отримати бажану поведінку. Ось ресурс, де я знайшов відповідну інформацію: /superuser/364304/how-do-i-configure-ssh-on-os-x

Ось параметри конфігурації, які я змінив:

PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no

Після цього мені вдалося генерувати ключі SSH на моєму клієнтському комп'ютері, перемістив відкритий ключ ~/.ssh/authorized_keysна Mac і встановив дозволи для цього файлу на 644.

Важливо зазначити, що ці дозволи є моїм відкритим ключем . Мої особисті ключові дозволу встановлені 600 на моєму комп'ютері клієнта. Це дійсно важливо, якщо у вашій ~/.sshпапці є і ваш публічний, і приватний ключ, і в системі є кілька користувачів. Якщо для дозволів вашого приватного ключа встановлено 644, будь-який користувач може прочитати ваш приватний ключ і видати себе за себе. Також дозволи для ~/.sshпапки повинні бути 700.


5
Внутрішньо /etc/sshd_configі /private/etc/sshd_configє тим самим файлом. :)
GhostLyrics

8

/etc/ssh/ssh_config- це файл конфігурації для клієнта, який використовується, якщо у вашому домашньому каталозі немає більш конкретного. Ви хочете відредагувати те, /etc/ssh/sshd_configщо саме для сервера.

Ви, ймовірно, захочете встановити PermitRootLogin without-password(або no) і PasswordAuthentication noтам.


Оновлення: оскільки ви працюєте з Yosemite, файл /etc/sshd_configвідповідає цій відповіді: https://apple.stackexchange.com/a/167405/11135

Для подальшої розробки , чому він все ще підказки при встановленні PasswordAuthentication noв /etc/ssh/ssh_configце важливо розуміти , що ви налаштували. "Під час встановлення вихідного з'єднання через SSH не пропонуйте автентифікацію пароля."


У мене немає /etc/ssh/ssh_config, тільки /etc/ssh_config. Я біжу на Йосеміті. Я намагався, PasswordAuthentication noале це все ще спонукає мене до пароля.
beznez

А, бачу. Це не те, що я хочу. Я хочу SSH від свого клієнта Linux на Mac з ключами та без пароля. Що потрібно змінити для вхідного з'єднання?
beznez

/etc/sshd_configPasswordAuthentication no. Вибачте за непорозуміння. Будь ласка, дайте мені знати, як я можу зробити відповідь більш зрозумілою. :)
GhostLyrics

Я досі отримую таку ж поведінку. Мені пропонується ввести пароль, коли я сшу з ОС Linux на Mac.
beznez

Давайте продовжимо це в чаті chat.stackexchange.com/rooms/info/34931/…
GhostLyrics
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.