Рубрики
Uncategorized

Автоматизация SSH-Copy-ID

В прошлом месяце я получаю более недавний ноутбук на своем рабочем месте, и мне нужно было переустановить мое распространение, … Помечено с инструментами, производительностью, дежопами, Bash.

В прошлом месяце я получаю более недавний ноутбук на своем рабочем месте, и мне нужно было переустановить мое распространение, Манджаро , в теме. 💻 К счастью, у меня есть полуавтоматная процедура, чтобы быстро настроить себя, но была часть, которая не на самом деле не ударила аккорда во мне:

# Add my public key to the principal servers (one command at at a time) 
ssh-copy-id -i ~/.ssh/id_rsa.pub $USER@SERVER_1
ssh-copy-id -i ~/.ssh/id_rsa.pub $USER@SERVER_2
# ...
ssh-copy-id -i ~/.ssh/id_rsa.pub $USER@SERVER_22

Для тех, которые не знают полезного ssh-copy-id Команда это инструмент часть Openssh Это добавляет открытый ключ SSH на сервере в качестве авторизованного ключа. С этим вам не нужно вводить свой пароль каждый раз, когда вы входите в систему на этом сервере.

Но у него мало (и нормальный) недостаток: первый раз, когда вы подключаетесь к серверу, чтобы установить новый открытый ключ SSH, Вам нужно ввести свой пароль Отказ 🔑. С более чем 20 машинами, которые я хочу иметь возможность подключиться без подсказки моего пароля, я знал, что мне нужно будет ввести ту же времена, мой сложный пароль … И это было только минимально, так как я мог ошибиться … ❌

Итак, я решу пытаться добавить больше Автоматизация к той части моего сценария. Я посмотрел на интернет, но я не нашел идеального решения для меня. Поэтому я склеен некоторые ответы, и я пришел с программой Bash ниже:

#!/bin/bash
# Script to automatically add our public key on a list of servers
# to remove the pain from typing each time our password
# when we want to access a server.

# [manual] If you want to copy your key to only one server
# ssh-copy-id -i ~/.ssh/id_rsa.pub SERVER

# Definition of the servers
SERVERS=(
  "benjaminrancourt.ca"
  "another-server.ca"
)

# Make sure we have your password
if [-z "$1"]; then
  echo "You must supply your password!"
  echo " ./ssh-copy-id-servers.sh 'PASSWORD'"
  exit
fi

# Export the password into an environment variable
export SSHPASS=$1

# Iterate over all servers
for SERVER in "${SERVERS[@]}"
do
  # Echo the server name
  echo $SERVER

  # Copy our key the first time to allow
  sshpass -e ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no $USER@$SERVER || echo "FAILED"

  # Clean the .ssh folder
  ssh $USER@$SERVER 'rm -rf .ssh'

  # Add back our key, as we have remove the former authorized keys, along with the new one!
  sshpass -e ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no $USER@$SERVER || echo "FAILED"
done

Чтобы удалить старые открытые ключи предыдущих установок, я также добавляю удаление .ssh папка на каждом сервере. Это может быть жестоким образом, но я уверен, что они не останавливаются! 💀

Взяв менее 30 минут, чтобы прийти к этому решению, я оцениваю, что сэкономлю, по крайней мере, такое же количество времени для себя на следующие пять лет. Мои инвестиции ускоряют быстрее, если другие люди на своем рабочем месте используют его! 🧹

Автоматизируя все больше своей процедуры в каждой переустановке, становится легче и проще! 🤖

Я бы хотел, чтобы этот скрипт помог вам!

Оригинал: «https://dev.to/ranb2002/automating-ssh-copy-id-2k15»