Linux

[Linux] SSH Key를 여러 서버에 복사하는 스크립트

crown28 2024. 5. 22. 10:18

시스템을 구축하고, 애플리케이션을 설치할 경우 사용 서버들끼리 ssh 접속을 할 때 주로 SSH key를 사용한다. 간단하게 스크립트를 만들어 빠르게 공개 키를 복사해보자.

 

필요한 정보

- SSH Key 생성 명령어: ssh-keygen

- SSH Key 복사 명령어: ssh-copy-id

- 접속할 서버 정보: IP, 접속 계정 및 패스워드

 

프로세스

- 접속할 서버 정보 및 SSH 키, 공개 키 경로를 변수에 저장한다

- SSH Key를 생성한다

- 생성한 SSH 공개 키를 해당 서버에 복사한다

 

#!/bin/bash

# 접속할 서버 정보, SSH 키 경로, 공개 키 경로를 변수에 저장
servers="host01 host02"
sshKey="$HOME/ .ssh/key.pem"
sshPub="$HOME/ .ssh/key.pem.pub"

# SSH Key 생성
ssh-keygen -q -N "" -f $sshKey

# 생성된 SSH Key를 해당 서버에 복사
for server in $servers
do
        echo $server
        sshpass -p "$1" ssh-copy-id -i $sshPub stack@$server
done

1. 홈 디렉터리 아래의. ssh 디렉토리에 SSH 키와 공개 키가 생성

2. for 문으로 서버 개수만큼 반복

3. 공개 키를 서버에 복사할 때 접속 확인 메시지를 무시하기 위해 sshpass, ssh-copy,id로 공개 키 복사

 

출처: 처음 배우는 셸 스크립트