У меня очень странная ситуация со Snow Leopard. У меня есть сервер Linux, настроенный на прием ssh-соединения, аутентифицированного только через ключ RSA. Нет пароля. На моем ноутбуке я правильно развернул ключ RSA с помощью ssh-keygen, и пока я это делал, я добавил парольную фразу. Затем я переместил id_rsa.pub на сервер Linux .ssh / authorized_keys.
Все идет нормально. Теперь я пытаюсь со своего ноутбука Snow Leopard войти на машину Linux. Я получаю всплывающее окно с запросом пароля. Это первое, что меня удивляет, так как я ожидал, что будет получен запрос парольной фразы оболочки, а не всплывающее окно. Согласно информации в этом всплывающем окне, приложение, запрашивающее парольную фразу, называется ssh. Также есть опция «запомнить фразу в связке ключей», которая отключена.
Я ввожу свой пароль. Всплывающее окно исчезнет, и терминал правильно войдет в систему Linux. Теперь, если я выйду из системы и снова попытаюсь использовать ssh, вход в систему произойдет без запроса парольной фразы, что является не что я хочу.
Что я проверил:
Где хранится кодовая фраза? что именно происходит, и как я могу принудительно запрашивать парольную фразу при каждой попытке ssh?
OS X автоматически запустит ssh-agent, когда ему понадобится ваш закрытый ключ. Ваш ключ будет доступен через ssh-agent (без повторного ввода ключевой фразы), пока вы не выйдете из системы. OS X или удалите ключ (через ssh-add -d
или ssh-add -D
удалить все ключи).
Это похоже на стандартное поведение системы * NIX с ssh-agent и позволяет использовать полезные функции, такие как пересылка аутентификации агента (ssh -A
), чтобы вам не приходилось размещать свой закрытый ключ по всей сети.
Если вы хотите отключить ssh-agent (для всех пользователей вашего Mac), вы можете удалить файл /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist
Другой способ - выгрузить и отключить LaunchAgent:
sudo launchctl -w /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist
В -w
заставляет его не просто выгружаться, но отмечать и запоминать его как отключенное.