Ключи SSH необходимы для безопасной связи между системами. Однако в некоторых случаях вам может потребоваться сбросить ключи SSH из списка, будь то из-за компрометации ключей, текучести кадров или обычных мер безопасности. В этой статье мы рассмотрим различные способы сброса ключей SSH из списка и предоставим примеры кода, которые помогут вам в этом процессе.
Метод 1: ротация ключей SSH вручную.
Самый простой метод предполагает ручной сброс ключей SSH для каждого пользователя или хоста в списке. Это можно сделать, выполнив следующие действия:
- Сгенерируйте новую пару ключей SSH с помощью команды «ssh-keygen».
- Скопируйте открытый ключ соответствующему пользователю или хосту.
- Обновите конфигурацию 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 регулярно меняются, чтобы повысить безопасность вашей системы.