Вопрос: Без пароля SSH не работает с Mac OS X 10.9.5 Mavericks


Я не могу получить пароли без учета логинов, работающих на моей машине Mac OS X 10.9.5 Mavericks. Я могу войти в удаленный ящик Ubuntu после настройки authorized_keys файл. Однако я не могу сделать это наоборот.

Поэтому я попытался устранить проблему установки Mac, выяснив, могу ли я сделать это без пароля:

ssh localhost

Выполнение этого в моем ящике Ubuntu работает хорошо, но Mac продолжает запрашивать пароли. Да, я проверил authorized_keys файл, а также known_hosts файл и убедитесь, что id_rsa.pub ключ был в обоих из них для моего Mac. Но я не могу SSH localhost без пароля.

Я прочитал другие сообщения такой как этот,

И даже включил следующие две настройки (удалив хэштегов перед ними) в sshd_config файл:

RSAAuthentication yes
PubKeyAuthentication yes

Все еще запрашивается пароль.

Поместите копии authorized_key а также known_hosts файлов в каталоге etc.

Все еще запрашивается пароль.


2
2017-10-14 01:18


Источник


Каков результат сеанса ssh, когда вы делаете ssh -v localhost? Это должно сказать вам, что это может захлебнуться. - JakeGould
возможно, попробуйте остановить и запустить службу sshd, если вы еще этого не сделали - barlop


Ответы:


Я предоставил ответ на переполнение стека, объясняющий пошаговый процесс для настройки доступа без пароля через SSH. Вот инструкции, адаптированные для ваших конкретных потребностей.

Сначала установите SSH-соединение в подробный режим, используя -v флаг:

ssh -v localhost

Как объясняется в ssh справочная страница; доступный через man ssh:

 -v      Verbose mode.  Causes ssh to print debugging messages about its
         progress.  This is helpful in debugging connection, authentica-
         tion, and configuration problems.  Multiple -v options increase
         the verbosity.  The maximum is 3.

Это избавило меня от многих головных болей в прошлом, показывая мне, как именно происходит процесс входа в систему и что именно забивает его. Например, вот вывод того, что я запускаю эту команду на моей локальной машине Mac OS X 10.9.5:

ssh -v localhost

OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug1: Connecting to localhost [::1] port 22.
debug1: Connection established.
debug1: identity file /Users/JakeGould/.ssh/id_rsa type 1
debug1: identity file /Users/JakeGould/.ssh/id_rsa-cert type -1
debug1: identity file /Users/JakeGould/.ssh/id_dsa type -1
debug1: identity file /Users/JakeGould/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.2
debug1: match: OpenSSH_6.2 pat OpenSSH*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 01:aa:8e:8e:b9:e1:4b:e8:bd:c5:a2:20:a3:c7:f1:18
debug1: Host 'localhost' is known and matches the RSA host key.
debug1: Found key in /Users/JakeGould/.ssh/known_hosts:43
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/JakeGould/.ssh/id_rsa
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: Trying private key: /Users/JakeGould/.ssh/id_dsa
debug1: Next authentication method: keyboard-interactive
Password:

Как вы можете видеть, оно вызывает подсказку с паролем. Но до этого он явно проверяет открытый ключ RSA. И поскольку у меня его нет, он просто перейдет к следующему методу аутентификации. Обратите внимание на вывод ssh -v когда вы запускаете его в своем наборе, чтобы увидеть, где вещи задыхаются.

Также убедитесь, что файлы SSH на машине назначения имеют разрешения, которые соответствуют следующим и принадлежат учетной записи, пытающейся получить доступ, как показано в этом примере:

-rw------- [username] [usergroup] authorized_keys
-rw------- [username] [usergroup] id_rsa
-rw-r--r-- [username] [usergroup] id_rsa.pub
-rw-r--r-- [username] [usergroup] known_hosts

Поэтому запустите эту команду chmod  authorized_keys файл:

sudo chmod 600 ~/.ssh/authorized_keys

И запустите эту команду chmod  id_rsa файл:

sudo chmod 600 ~/.ssh/id_rsa

3
2017-10-14 01:49



90% времени это разрешения. - Paul
спасибо за подробный ответ, но я все еще смущен. мой вывод ssh -v такой же, как ваш (за исключением очевидных различий, таких как имя машины и ключ ssh). Хотя у меня есть пара частных и открытых ключей rsa, и я успешно ввел их в «authorized_keys». Я также сделал это: <br> ssh-keygen -t dsa -P '' -f ~ / .ssh / id_dsa </ br> <br> cat ~ / .ssh / id_dsa.pub >> ~ / .ssh / authorized_keys '</ br>, но я все еще получаю приглашение пароля. затем я просто удалю учетную запись и начну. - aquagremlin
Я удалил все свои ключи из папки .ssh и начал работу. ОЖИДАЕТСЯ ПРОБЛЕМА. - aquagremlin
Я создал новую учетную запись, и теперь все работает. Единственное, что я сделал по-другому, - это использовать длинный пароль при создании учетной записи (> 3 буквы. Сначала я использовал короткий пароль, потому что это была только «тестовая» учетная запись) - aquagremlin
Ну, я снова попробовал еще одну новую учетную запись с использованием более короткого пароля и получил этот debug1: аутентификация, которая может продолжаться: publickey, keyboard-interactive debug1: следующий метод проверки подлинности: публикация debug1: пробный закрытый ключ: /Users/nugget3/.ssh/id_rsa debug1: Предоставление открытого ключа DSA: /Users/nugget3/.ssh/id_dsa debug1: Сервер принимает ключ: pkalg ssh-dss blen 434 debug1: чтение закрытого ключа PEM: тип DSA Connection закрыто 127.0.0.1 ЗАКЛЮЧЕНИЕ СВЯЗИ? - aquagremlin


Я нашел проблему. Удаленный хост регистрирует начало каждого RSA или DSA-ключа. Это видно в текстовом виде в конце каждой строки в списке авторизованных ключей (который вы обычно не видите, потому что nano не обтекает текст).

Я сначала сшал на удаленный хост, тогда копирование ключа и слияние его с authorized_keys, Плохо.

На клиентской машине ключ должен быть скопирован на удаленный хост с помощью этой специальной команды копирования, scp, или ssh-copy-id (OS X не имеет этого, если он не установлен с brew или port).

Тогда слияние с authorized_keys может быть выполнена. Небрежная человеческая ошибка с моей стороны.


3
2017-10-14 16:38



Возникла ошибка копирования / вставки. Был способен обойти его, используя cat локально и nano на сервере. Upvoting, потому что иногда повторение тривиального - лучший способ исправить проблему. - tresf


Для меня у меня был дополнительный ключ для подключения к хосту. Чтобы подключиться к этому, вам нужно добавить это к идентификатору, используя:

ssh-add yourPrivateKey

0
2018-02-09 00:25