Как использовать ключи 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? Я не перезагружаю демона правильно? Есть еще один шаг, который я пропускаю?

beznez
источник

Ответы:

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.

beznez
источник
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 не предлагайте аутентификацию по паролю».

GhostLyrics
источник
Я не есть /etc/ssh/ssh_config, только /etc/ssh_config. Я бегу на Йосемити. Я попробовал, PasswordAuthentication noно он все еще запрашивает у меня пароль.
Безнез
Ах я вижу. Это не то, что я хочу. Я хочу SSH от моего клиента Linux к Mac с ключами и без пароля. Что я должен изменить для входящего соединения?
Безнез
/etc/sshd_configPasswordAuthentication no. Извините за путаницу. Пожалуйста, дайте мне знать, как я могу сделать ответ более ясным. :)
GhostLyrics
Я все еще веду себя так же. Он запрашивает у меня пароль, когда я ssh с компьютера Linux на Mac.
Безнез
Давайте продолжим это в чате chat.stackexchange.com/rooms/info/34931/…
GhostLyrics