Инструменты пользователя

Инструменты сайта


linux:ssh:key

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
linux:ssh:key [2023/11/12 00:09]
werwolf [Отключение проверки пароля]
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}}]]===== Как создать ключи SSH? =====+{{ :linux:ssh:fetch.png |}} 
 +===== Как создать ключи SSH? =====
  
 Сначала необходимо создать ключи ssh для аутентификации на локальном сервере. Для этого существует специальная утилита ssh-keygen, которая входит в набор утилит OpenSSH. По умолчанию она создает пару 2048 битных RSA ключей,​ которая подойдет не только для SSH, но и для большинства других ситуаций. Сначала необходимо создать ключи ssh для аутентификации на локальном сервере. Для этого существует специальная утилита ssh-keygen, которая входит в набор утилит OpenSSH. По умолчанию она создает пару 2048 битных RSA ключей,​ которая подойдет не только для SSH, но и для большинства других ситуаций.
Строка 18: Строка 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}}Утилита предложит вам выбрать расположение ключей. По умолчанию ключи располагаются в папке ~/.ssh/. Лучше ничего не менять,​ чтобы все работало по умолчанию и ключи автоматически подхватывались. Секретный ключ будет называться id_rsa, а публичный id_rsa.pub.+{{ :linux:​ssh:​fetch_2.png |}} 
 + 
 +Утилита предложит вам выбрать расположение ключей. По умолчанию ключи располагаются в папке ~/.ssh/. Лучше ничего не менять,​ чтобы все работало по умолчанию и ключи автоматически подхватывались. Секретный ключ будет называться id_rsa, а публичный id_rsa.pub.
  
 Затем утилита предложит ввести пароль для дополнительного шифрования ключа на диске. Его можно не указывать,​ если не хотите. Использование дополнительного шифрования имеет только один минус - необходимость вводить пароль,​ и несколько преимуществ:​ Затем утилита предложит ввести пароль для дополнительного шифрования ключа на диске. Его можно не указывать,​ если не хотите. Использование дополнительного шифрования имеет только один минус - необходимость вводить пароль,​ и несколько преимуществ:​
Строка 40: Строка 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>​ 
 + 
 +{{ :​linux:​ssh:​fetch_3.png |}}
  
-[[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}}]]При первом подключении к серверу система может его не распознать,​ поэтому вам нужно ввести yes. Затем введите ваш пароль пользователя на удаленном сервере. Утилита подключится к удаленному серверу,​ а затем использует содержимое ключа id.rsa.pub для загрузки его на сервер в файл ~/​.ssh/​authorized_keys. Дальше вы можете выполнять аутентификацию с помощью этого ключа.+При первом подключении к серверу система может его не распознать,​ поэтому вам нужно ввести yes. Затем введите ваш пароль пользователя на удаленном сервере. Утилита подключится к удаленному серверу,​ а затем использует содержимое ключа id.rsa.pub для загрузки его на сервер в файл ~/​.ssh/​authorized_keys. Дальше вы можете выполнять аутентификацию с помощью этого ключа.
  
 Если такой способ по какой-либо причине для вас не работает,​ вы можете скопировать ключ по 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 ключ с доступом по паролю,​ то вы сразу же будете авторизованы,​ что очень удобно. Иначе, сначала вам придется ввести фразу-пароль для расшифровки ключа.
Строка 60: Строка 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, пароль не будет приниматься.
linux/ssh/key.1699736973.txt.gz · Последние изменения: 2023/11/12 00:09 — werwolf