@hrvasiliy

Как отключить «запоминание» ключей?

Для доступа по SSH на Mac OS пользуюсь стандартным терминалом.
История такая: я подключился 1 раз к root с использованием приватного ключа. Создал нового пользователя, вышел из под root. Пробую войти из под нового пользователя user, но забываю сменить имя пользователя при этом ключ я сменил на новый. (ssh root@ip -p port -i /path/to/user_key) и я попадаю в учетку root пользователя! Потом я попробовал вообще войти без ключа и все получилось. Дальше же самое интересное, пробую подключиться по SFTP через стороннюю программу - FileZilla и я свободно вхожу без пароля и ключа. То есть ключ хранится где-то в памяти.

Единственный вариант, который я нашел: найти номер сервиса ssh и остановить его, после этого при попытке входа уже необходимо указать ключ, но достаточно сделать это всего 1 раз и он опять в памяти.

Есть ли возможность отключить это "запоминание" ключей?
  • Вопрос задан
  • 466 просмотров
Решения вопроса 2
martin74ua
@martin74ua
Linux administrator
запущен ssh-agent? кеширует ключи
Ответ написан
@hrvasiliy Автор вопроса
В общем, все оказалось не так просто.

Инструкция:
Требуется добавить 2 строчки (установка времени жизни ключа в 1 секунду) в конфигурацию ssh-agent.
Но просто так их добавить не получится, так как файл имеет защиту.

1. Чтобы снять защиту, перезагружаемся с зажатыми "CMD + R", открываем терминал и вводим:
csrutil disable
защита снята.

2. Загружаемся в систему и редактируем данный файл:
/System/Library/LaunchAgents/org.openbsd.ssh-agent.plist

Добавив 2 строчки:
<string>-t</string>
<string>1</string>

Приводим файл к такому виду:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>org.openbsd.ssh-agent</string>
	<key>ProgramArguments</key>
	<array>
		<string>/usr/bin/ssh-agent</string>
		<string>-l</string>
		<string>-t</string>
		<string>1</string>
	</array>
	<key>ServiceIPC</key>
	<true/>
	<key>Sockets</key>
	<dict>
		<key>Listeners</key>
		<dict>
			<key>SecureSocketWithKey</key>
			<string>SSH_AUTH_SOCK</string>
		</dict>
	</dict>
        <key>EnableTransactions</key>
        <true/>
</dict>
</plist>


3. Перезагружаемся с зажатыми "CMD + R" идем в терминал и включаем защиту:
csrutil enable --without debug

P.S.: Все действия вы совершаете на свой страх и риск.
P.P.S.: Я получил желаемый результат, всем удачи :)

Система: OS X El Capitan

Спасибо: Руслан Федосеев

Источники:
1. totalspaces.binaryage.com/elcapitan
2. blog.regolit.com/2013/11/18/paranoid-ssh-agent-set...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы