Полное руководство: сброс ключей SSH из списка — методы и примеры кода

Ключи SSH необходимы для безопасной связи между системами. Однако в некоторых случаях вам может потребоваться сбросить ключи SSH из списка, будь то из-за компрометации ключей, текучести кадров или обычных мер безопасности. В этой статье мы рассмотрим различные способы сброса ключей SSH из списка и предоставим примеры кода, которые помогут вам в этом процессе.

Метод 1: ротация ключей SSH вручную.
Самый простой метод предполагает ручной сброс ключей SSH для каждого пользователя или хоста в списке. Это можно сделать, выполнив следующие действия:

  1. Сгенерируйте новую пару ключей SSH с помощью команды «ssh-keygen».
  2. Скопируйте открытый ключ соответствующему пользователю или хосту.
  3. Обновите конфигурацию SSH, чтобы использовать новый ключ.

Пример кода:

$ ssh-keygen -t rsa -b 4096 -f new_key
$ ssh-copy-id -i new_key.pub user@host

Метод 2: ротация ключей SSH по сценарию с использованием Bash
Если у вас есть большой список ключей SSH для сброса, автоматизация процесса с помощью сценария Bash может сэкономить время и усилия. Вот пример скрипта:

#!/bin/bash
while IFS= read -r key
do
    user=$(echo "$key" | cut -d':' -f1)
    host=$(echo "$key" | cut -d':' -f2)
    ssh-keygen -t rsa -b 4096 -f "${user}_key"
    ssh-copy-id -i "${user}_key.pub" "$user@$host"
done < key_list.txt

Обязательно создайте файл с именем «key_list.txt», содержащий пары имени пользователя и хоста, разделенные двоеточиями.

Метод 3: скрипт Python для ротации ключей SSH
Python предоставляет мощные библиотеки для автоматизации ротации ключей SSH. Вот пример скрипта, использующего библиотеку paramiko:

import paramiko
with open('key_list.txt', 'r') as file:
    for line in file:
        user, host = line.strip().split(':')

        client = paramiko.SSHClient()
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        client.connect(hostname=host, username=user)
        key = paramiko.RSAKey.generate(bits=4096)
        key.write_private_key_file(f'{user}_key')
        sftp = client.open_sftp()
        sftp.put(f'{user}_key.pub', f'/home/{user}/.ssh/authorized_keys')
        sftp.close()
        client.close()

Сброс ключей SSH из списка имеет решающее значение для соблюдения надежных мер безопасности. В этой статье мы рассмотрели три метода: ротацию вручную, ротацию по сценарию с использованием Bash и автоматическую ротацию с использованием Python. Каждый метод предлагает разный уровень автоматизации и подходит для различных случаев использования. Выберите метод, который лучше всего соответствует вашим требованиям, и убедитесь, что ваши ключи SSH регулярно меняются, чтобы повысить безопасность вашей системы.