Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия | |||
|
linux:ssh:key [2023/11/12 00:10] werwolf [Как создать ключи SSH?] |
linux:ssh:key [2023/11/12 11:24] (текущий) werwolf |
||
|---|---|---|---|
| Строка 12: | Строка 12: | ||
| Когда клиент попытается выполнить проверку подлинности через этот ключ, сервер отправит сообщение, зашифрованное с помощью открытого ключа, если клиент сможет его расшифровать и вернуть правильный ответ - аутентификация пройдена. | Когда клиент попытается выполнить проверку подлинности через этот ключ, сервер отправит сообщение, зашифрованное с помощью открытого ключа, если клиент сможет его расшифровать и вернуть правильный ответ - аутентификация пройдена. | ||
| - | [[https://losst.pro/wp-content/uploads/2017/02/ssh-key-auth-flow.png|{{https://losst.pro/wp-content/uploads/2017/02/ssh-key-auth-flow.png?745x179}}]] | + | {{ :linux:ssh:fetch.png |}} |
| ===== Как создать ключи SSH? ===== | ===== Как создать ключи SSH? ===== | ||
| Строка 19: | Строка 19: | ||
| И так, генерация ключей ssh выполняется командой: | И так, генерация ключей ssh выполняется командой: | ||
| - | ''ssh-keygen'' | + | <code bash> |
| + | ssh-keygen | ||
| + | </code> | ||
| - | {{https://losst.pro/wp-content/uploads/2017/02/Snimok-ekrana-iz-2017-02-06-17-59-21-1024x576.png?750x422}} | + | {{ :linux:ssh:fetch_2.png |}} |
| Утилита предложит вам выбрать расположение ключей. По умолчанию ключи располагаются в папке ~/.ssh/. Лучше ничего не менять, чтобы все работало по умолчанию и ключи автоматически подхватывались. Секретный ключ будет называться id_rsa, а публичный id_rsa.pub. | Утилита предложит вам выбрать расположение ключей. По умолчанию ключи располагаются в папке ~/.ssh/. Лучше ничего не менять, чтобы все работало по умолчанию и ключи автоматически подхватывались. Секретный ключ будет называться id_rsa, а публичный id_rsa.pub. | ||
| Строка 43: | Строка 45: | ||
| Самый простой способ скопировать ключ на удаленный сервер - это использовать утилиту ssh-copy-id. Она тоже входит в пакет программ OpenSSH. Но для работы этого метода вам нужно иметь пароль доступа к серверу по SSH. Синтаксис команды: | Самый простой способ скопировать ключ на удаленный сервер - это использовать утилиту ssh-copy-id. Она тоже входит в пакет программ OpenSSH. Но для работы этого метода вам нужно иметь пароль доступа к серверу по SSH. Синтаксис команды: | ||
| - | ''ssh-copy-id username@remote_host'' | + | <code bash> |
| + | ssh-copy-id username@remote_host | ||
| + | </code> | ||
| - | [[https://losst.pro/wp-content/uploads/2017/02/Snimok-ekrana-iz-2017-02-06-18-00-14.png|{{https://losst.pro/wp-content/uploads/2017/02/Snimok-ekrana-iz-2017-02-06-18-00-14-1024x576.png?750x422}}]] | + | {{ :linux:ssh:fetch_3.png |}} |
| При первом подключении к серверу система может его не распознать, поэтому вам нужно ввести yes. Затем введите ваш пароль пользователя на удаленном сервере. Утилита подключится к удаленному серверу, а затем использует содержимое ключа id.rsa.pub для загрузки его на сервер в файл ~/.ssh/authorized_keys. Дальше вы можете выполнять аутентификацию с помощью этого ключа. | При первом подключении к серверу система может его не распознать, поэтому вам нужно ввести yes. Затем введите ваш пароль пользователя на удаленном сервере. Утилита подключится к удаленному серверу, а затем использует содержимое ключа id.rsa.pub для загрузки его на сервер в файл ~/.ssh/authorized_keys. Дальше вы можете выполнять аутентификацию с помощью этого ключа. | ||
| Строка 51: | Строка 55: | ||
| Если такой способ по какой-либо причине для вас не работает, вы можете скопировать ключ по ssh вручную. Мы создадим каталог ~/.ssh, а затем поместим наш ключ в файл authorized_keys с помощью символа >>, это позволит не перезаписывать существующие ключи: | Если такой способ по какой-либо причине для вас не работает, вы можете скопировать ключ по ssh вручную. Мы создадим каталог ~/.ssh, а затем поместим наш ключ в файл authorized_keys с помощью символа >>, это позволит не перезаписывать существующие ключи: | ||
| - | ''cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"'' | + | <code bash> |
| + | cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" | ||
| + | </code> | ||
| Здесь вам тоже нужно набрать yes, если вы подключаетесь к новому серверу, а затем ввести пароль. Теперь вы можете использовать созданный ключ для аутентификации на сервере: | Здесь вам тоже нужно набрать yes, если вы подключаетесь к новому серверу, а затем ввести пароль. Теперь вы можете использовать созданный ключ для аутентификации на сервере: | ||
| - | '' ssh username@remote_host'' | + | <code bash> |
| + | ssh username@remote_host | ||
| + | </code> | ||
| - | |||
| Если вы не захотели создать ssh ключ с доступом по паролю, то вы сразу же будете авторизованы, что очень удобно. Иначе, сначала вам придется ввести фразу-пароль для расшифровки ключа. | Если вы не захотели создать ssh ключ с доступом по паролю, то вы сразу же будете авторизованы, что очень удобно. Иначе, сначала вам придется ввести фразу-пароль для расшифровки ключа. | ||
| Строка 65: | Строка 72: | ||
| Если пароль больше не будет использоваться, то для увеличения безопасности системы лучше его вовсе отключить. Но убедитесь, что ключ надежно сохранен и вы его не потеряете, потому что по паролю вы больше не войдете. Авторизуйтесь на сервере, затем откройте конфигурационный файл /etc/ssh/sshd_config и найдите там директиву PasswordAuthenticatin. Нужно установить ее значение в No: | Если пароль больше не будет использоваться, то для увеличения безопасности системы лучше его вовсе отключить. Но убедитесь, что ключ надежно сохранен и вы его не потеряете, потому что по паролю вы больше не войдете. Авторизуйтесь на сервере, затем откройте конфигурационный файл /etc/ssh/sshd_config и найдите там директиву PasswordAuthenticatin. Нужно установить ее значение в No: | ||
| - | ''sudo vi /etc/ssh/sshd_config'' | + | <code bash> |
| + | sudo vi /etc/ssh/sshd_config | ||
| - | ''PasswordAuthentication no'' | + | PasswordAuthentication no |
| + | </code> | ||
| - | [[https://losst.pro/wp-content/uploads/2017/02/Snimok-ekrana-iz-2017-02-06-18-02-59.png|{{https://losst.pro/wp-content/uploads/2017/02/Snimok-ekrana-iz-2017-02-06-18-02-59-1024x576.png?750x422}}]] | + | {{ :linux:ssh:fetch_4.png |}} |
| Теперь сохраните файл и перезапустите службу ssh: | Теперь сохраните файл и перезапустите службу ssh: | ||
| - | ''sudo service ssh restart'' | + | <code bash> |
| + | sudo service ssh restart | ||
| + | </code> | ||
| Дальше будет возможно только подключение по ключу ssh, пароль не будет приниматься. | Дальше будет возможно только подключение по ключу ssh, пароль не будет приниматься. | ||