Где хранится ключ SSH в OS X после удаления самого файла ключа?
Сгенерировал в OS X ключ c паролем через терминал. Получил 2 файла в папке ~/.ssh: id_rsa и id_rsa_pub.
После этого подключился к серверу (через терминал) с помощью данного ключа и пароля к нему. В папке ~/.ssh появился еще один файл known_hosts
Вопрос: после того, как я удаляю из папки все файлы доступ к серверу через терминал все равно сохраняется. Смотрел в связке ключей, там ничего не сохранено. Где же тогда хранится ключ? Допустим, я хочу убрать доступ у этого компьютера. Повторю удаление самих файлов ключей из папки ~/.ssh не помогает. Доступ все равно сохраняется и уже никакие ключи не требуются.
maashina
18.04.18 11:55:59 MSK
А ты уверен, что пароль вводишь от ключа, а не от пользователя на той стороне?
SR_team ★★★★★
( 18.04.18 12:25:44 MSK )
Для устраниния доступа надо на удалённой стороне убрать публичный ключ из ~/.ssh/authorized_keys
Туда же он и добаляется для разрешения доступа. Т.ч. что-то ты не то делаешь.
beastie ★★★★★
( 18.04.18 12:31:40 MSK )
Получил ответ на другом форуме. Может кому-то полезно будет:
процессу, запущенному программой ssh, секретная часть ключа (обычно хранится в файле с именем ~/.ssh/id_rsa) требуется лишь при установке соединения — для аутентификации и для генерации сеансового ключа, которым в дальнейшем и шифруется трафик.
после установки соединения секретная часть ключа уже не требуется. она не сохраняется даже в памяти процесса ssh.
а сеансовый ключ хранится лишь в памяти процесса: он теряет смысл по окончании сессии (которая, естественно, заканчивается при завершении работы процесса ssh).
ах, да, процесс ssh-agent хранит секретные ключи непосредственно в своей памяти. раз вы не упоминаете про эту программу, значит добавление ключей производится процессом ssh автоматически, благодаря наличию опции addkeystoagent=yes (см. man ssh-config) либо в одном из конфигурационных файлов, учитываемых процессом ssh, либо, как умолчание, благодаря услужливости того, кто компилировал для вас программу ssh.
посмотреть список ключей, хранимых в данный момент в памяти процессом ssh-agent для вашей учётной записи, можно, передав программе опцию -l:
Где хранится ключ SSH в OS X после удаления самого файла ключа?
Добрый день! Сгенерировал ключ c паролем через терминал. Получил 2 файла в папке ~/.ssh: id_rsa и id_rsa_pub. После этого подключился к серверу (через терминал) с помощью данного ключа и пароля к нему. В папке ~/.ssh появился еще один файл known_hosts Вопрос: после того, как я удаляю из папки все файлы доступ к серверу через терминал все равно сохраняется. Смотрел в связке ключей, там ничего не сохранено. Где же тогда хранится ключ? Допустим, я хочу убрать доступ у этого компьютера. Повторю удаление самих файлов ключей из папки ~/.ssh не помогает. Доступ все равно сохраняется и уже никакие ключи не требуются. Спасибо
Отслеживать
задан 18 апр 2018 в 9:03
artoritorian artoritorian
3 2 2 бронзовых знака
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
процессу, запущенному программой ssh, секретная часть ключа (обычно хранится в файле с именем ~/.ssh/id_rsa ) требуется лишь при установке соединения — для аутентификации и для генерации сеансового ключа, которым в дальнейшем и шифруется трафик.
после установки соединения секретная часть ключа уже не требуется. она не сохраняется даже в памяти процесса ssh.
а сеансовый ключ хранится лишь в памяти процесса: он теряет смысл по окончании сессии (которая, естественно, заканчивается при завершении работы процесса ssh).
ах, да, процесс ssh-agent хранит секретные ключи непосредственно в своей памяти. раз вы про не упоминаете про эту программу, значит добавление ключей производится процессом ssh автоматически, благодаря наличию опции addkeystoagent=yes (см. man ssh_config ) либо в одном из конфигурационных файлов, учитываемых процессом ssh, либо, как умолчание, благодаря услужливости того, кто компилировал для вас программу ssh.
посмотреть список ключей, хранимых в данный момент в памяти процессом ssh-agent для вашей учётной записи, можно, передав программе опцию -l :
$ ssh-add -l
#Создание SSH-ключей для MacOS и Linux
Стандартный набор OpenSSH включает утилиту ssh-keygen, которая используется для генерации пар ключей. Запустить её можно при помощи команды:
ssh-keygen
После этого утилита запросит указать место хранения для ключей. По умолчанию они хранятся в директории ~/.ssh с именами файлов id_rsa для приватных ключей и id_rsa.pub для публичных.
При использовании стандартных мест хранения клиент SSH будет находить ваши SSH-ключи во время идентификации, поэтому рекомендуется не изменять их и нажать ENTER .
Generating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa):
Внимание! Если пара ключей уже была сгенерирована ранее, может появиться следующее сообщение:
/home/username/.ssh/id_rsa already exists. Overwrite (y/n)?
Если вы решите переписать ключ на диске, то уже не сможете использовать старый ключ. Процесс будет необратимым.
#Пароль
После указания места хранения ключа система запросит дополнительный пароль, который зашифрует файл ключа на диске.
Этот пароль нужно будет вводить каждый раз при использовании ключа за исключением случаев, когда для хранения ключей используется SSH-агент.
Мы рекомендуем использовать пароль, но вы можете нажать ENTER и пропустить этот шаг.
Created directory '/home/username/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again:
Это был последний шаг. Теперь у вас есть публичный и приватный ключ, которым можно пользоваться для входа:
Your identification has been saved in /home/username/.ssh/id_rsa. Your public key has been saved in /home/username/.ssh/id_rsa.pub. The key fingerprint is: a9:49:EX:AM:PL:E3:3e:a9:de:4e:77:11:58:b6:90:26 username@203.0.113.0 The key's randomart image is: +--[ RSA 2048]----+ | ..o | | E o= . | | o. o | | .. | | ..S | | o o. | | =o.+. | |. =++.. | |o=++. | +-----------------+
SSH-ключи для Облачных серверов
В этой статье мы расскажем, для чего нужен SSH-ключ, как создать SSH ключ и как добавить SSH ключ на сервер.
Облачные серверы нового поколения
Виртуализация KVM, почасовая оплата, резервные копии, готовые шаблоны, 10 доступных ОС на выбор!
SSH-ключ — безопасный способ соединения с сервером. Подключение по SSH с помощью ключа исключает риск, который связан с подбором и взломом вашего пароля.
Для аутентификации используются два ключа: приватный и публичный.
Публичный ключ хранится на сервере в корневом каталоге, а приватный ключ остаётся на локальном компьютере в зашифрованном виде. Каждый раз, когда вы обращаетесь к серверу, происходит сопоставление ключей. Таким образом, отпадает необходимость в авторизации с помощью пароля, и данные от вашего сервера остаются в безопасности.
Работа с SSH-ключами
Чтобы воспользоваться SSH-ключом на облачном сервере, для начала его необходимо создать.
Как создать SSH ключ
Способ создания SSH-ключа зависит от операционной системы, которая установлена на вашем компьютере. Выберите нужную операционную систему и следуйте инструкции:
Как создать SSH ключ в Linux
Сгенерировать ключ в ОС Linux можно с помощью терминала. Для этого:
- в Unity (Ubuntu): «Главное меню» — в поисковой строке введите слово «Терминал», либо просто нажмите комбинацию клавиш: Ctrl+Alt+T;
- в Xfce (Xubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал»;
- в KDE (Kubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал».
Введите команду ssh-keygen и нажмите Enter. Если команда ssh-keygen не найдена, установите пакет openssh .
В терминале будет выведено следующее сообщение: Нажмите Enter, если хотите, чтобы файл был сохранен в директории по умолчанию. Или введите собственные адрес/имя_файла, чтобы ключ был сохранен в нужной вам директории.
Далее вам будет предложено ввести кодовое слово для дополнительной защиты ключа. Вы можете пропустить данный шаг и нажать Enter. Если вы укажете кодовое слово, при обращении на сервер оно будет дополнительно запрашиваться и сохраняться на некоторое время. Данный способ позволяет дополнительно защитить ваш приватный ключ.
После генерации ключа в папке .ssh будут созданы два файла: id_rsa (приватный ключ) и id_rsa.pub (публичный ключ). В терминале будет отображаться отпечаток сгенерированного ключа:
Введите команду cat ~/.ssh/id_rsa.pub . В терминале откроется файл с вашим публичным ключом:
Как создать SSH ключ в Windows
Пользователям Windows необходимо скачать SSH-клиент PuTTY на официальном сайте (англоязычная версия). В его состав входит специальная программа для генерации ключей PuTTYgen.
Запустите PuTTYgen и нажмите кнопку Generate:
Приведите в движение курсор мыши в окне программы для сбора случайных данных. Индикатор загрузки (зелёная полоска) отображает процесс генерации ключа:
После того как ключ будет создан, программа отобразит информацию с публичным ключом и отпечатком приватного ключа:
Скопируйте публичный ключ из окна Key и сохраните его на локальном компьютере. Приватный ключ можно сохранить с помощью кнопки Save private key.
Важно: Публичный ключ в формате openSSH можно сохранить, только скопировав его вручную. Ключ, сохранённый с помощью кнопки «Save public key», система Linux не распознаёт.
Как создать SSH ключ в macOS
Обратите внимание
Если у вас уже есть сгенерированный приватный и публичный ключи, перейдите в подраздел Как добавить SSH ключ на сервер.
Сгенерировать ключ в macOS можно при помощи терминала.
Запустите терминал. Для этого нажмите комбинацию клавиш Command (⌘) + Пробел, введите в поисковой строке Терминал и нажмите Enter.
Введите команду ssh-keygen -t rsa и нажмите Enter:
Чтобы сохранить файл в директории по умолчанию, нажмите Enter.
Вам будет предложено ввести кодовое слово для дополнительной защиты подключения. Вы можете пропустить данный шаг и нажать Enter. Если вы укажете кодовое слово, оно будет дополнительно запрашиваться при каждом подключении к серверу:
Повторите пароль или нажмите Enter, если вы пропустили предыдущий шаг.
После успешной генерации ключа будет создано два файла: id_rsa (приватный ключ) и id_rsa.pub (публичный ключ). В терминале будет отображаться отпечаток ключа и его изображение:
После создания SSH-ключа вы можете добавить его на сервер с помощью инструкций ниже.
Как добавить SSH ключ на сервер
Если вы уже создали облачный сервер, то добавить SSH-ключ можно только на самом сервере, через подключение по SSH.
Чтобы добавить созданный SSH-ключ на существующий сервер, выберите операционную систему, которая установлена на вашем компьютере, и следуйте инструкции:
- в Unity (Ubuntu): «Главное меню» — в поисковой строке введите слово «Терминал», либо просто нажмите комбинацию клавиш: Ctrl+Alt+T;
- в Xfce (Xubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал»;
- в KDE (Kubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал».
Введите команду: ssh-copy-id root@123.123.123.123 , где root — логин вашего сервера, 123.123.123.123 — IP-адрес сервера. Его можно узнать в информационном письме, которое было отправлено вам после создания сервера.
Нажмите Enter и введите пароль от вашего сервера. После успешного подключения ваш ключ будет добавлен на сервер и вы сможете подключаться к серверу без обязательного ввода пароля.
Все действия нужно выполнять на сервере через подключение по SSH с помощью SSH-клиента PuTTY.
Создайте папку .ssh с помощью команды mkdir .ssh .
Измените права доступа к папке с помощью команды chmod 700 .ssh и перейдите в неё с помощью команды cd .ssh .
Создайте файл с вашим публичным ключом при помощи команды echo your_public_key authorized_keys .
Добавьте ваш приватный ключ в PuTTY:
Запустите терминал. Для этого нажмите комбинацию клавиш Command (⌘) + Пробел, введите в поисковой строке Терминал и нажмите Enter.
- user — имя пользователя;
- 123.123.123.123 — IP-адрес сервера. Его можно узнать в информационном письме, которое было отправлено вам после создания сервера.
Нажмите Enter и введите пароль от вашего сервера. После успешного подключения ваш ключ будет добавлен на сервер и вы сможете подключаться к серверу без обязательного ввода пароля.
После добавления SSH-ключа вы можете подключиться к вашему серверу по SSH без ввода пароля.
Как добавить SSH-ключ при создании или переустановке облачного сервера
Добавление SSH-ключа через панель управления облачными серверами возможно только при создании сервера или переустановке.
При добавлении SSH-ключа через панель облачных серверов ключ будет добавлен для root пользователя.
Как добавить ключ при создании сервера
При создании сервера нажмите на кнопку Новый SSH-ключ.
Придумайте и введите название SSH-ключа. В поле SSH-ключ вставьте ваш публичный ключ и нажмите Добавить SSH-ключ:
Выберите добавленный ключ и нажмите Заказать сервер.
Готово, после создания сервера ваш ключ будет добавлен на сервер. Созданный ключ будет отображаться на вкладке «Настройки»:
Как добавить ключ при переустановке сервера
Перейдите в панель управления облачными серверами и следуйте инструкции:
Выберите сервер. Нажмите на кнопку Переустановить образ:
На этапе переустановки системы нажмите Добавить SSH-ключ:
Придумайте и введите название SSH-Ключа. В поле SSH-ключ вставьте ваш публичный ключ и нажмите Добавить SSH-Ключ:
Выберите добавленный ключ и ОС для переустановки, затем нажмите кнопку Переустановить образ:
Готово, после переустановки ваш ключ будет добавлен на сервер. Созданный вами ключ будет отображаться на вкладке «Настройки»:
После добавления SSH-ключа вы можете подключиться к вашему серверу по SSH без ввода пароля.