ssh-copy-id -i [key_path] [user]@[host]
우선 수동으로 authorized_keys 파일에 pub key 를 넣어주는 방법도 존재한다.
그러나 이 명령어를 통해 자동으로 target host에 pub key 주입이가능한데,,
이 과정을 할때 보면 번거로운 점이 있는데,
첫째, 해당 커맨드로 pub key 를 보내기 위해선 이미 패스워드로 ssh 접근이 가능해야함.
둘째, 당연하게도 패스워드 입력이당.
셋째, 처음 접근 시 Are you sure you want to continue connecting (yes/no)? 입력..
그래서 자동화 스크립트를 생각해보았다.
[target host]
# 임시적으로 패스워드 설정
sudo sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
sudo systemctl restart sshd
echo 'bazzi:1234' | sudo chpasswd # 패스워드 변경
### 여기까지 작업 후 key copy 시작 = 이정도 스크립트를 부팅시 여러 방법을 통해 한번만 실행되게끔? 하면 된다. 방법은 아직 음..
&& ID / PW , IP 는 각 개인별껄 이용
[ansible server]
# expect 이용한 자동화
yum -y install expect
# vi ssh_auto_key.exp
-----------
#!/usr/bin/expect
set timeout 5
spawn ssh-copy-id -o StrictHostKeyChecking=no -i /home/bazzi/.ssh/id_rsa.pub jayce@10.151.74.4
expect {
"bazzi@10.151.74.4's password: " { # 프롬프트에 password: 항목이 뜨는 경우
send "1234\r"
exp_continue
}
}
---------
chmod +x ssh_auto_key.exp
./ssh_auto_key.exp
작업 후 원격서버들 password 기반 ssh 옵션 원복 후 sshd restart
---------------------------------------
간단한 작업을 복잡하게 만들어가는듯 하네여.. -_-;
뭔가... pub key 를 넣어준 VM 이미지 하나를 떠서 -o StrictHostKeyChecking=no 옵션으로 사용하거나,
ssh-keyscan 을 통해 known_hosts 파일을 만들어둔다거나 해도 괜찮을거 같네여..
또 다른 아주 심플한 방법이 이미 존재하겠지만 서도..
저의 의식의 흐름의 따라 구성을 생각해보았습니다.
이상 -초보자-
( _ _ )
'DevOps __' 카테고리의 다른 글
Ubuntu 20.04 보안 취약점 조치 playbook (0) | 2021.12.31 |
---|---|
Ansible 서버 window 호스트 관리. (1) | 2020.10.26 |
Kubernetes - 구성 (0) | 2020.04.22 |
GCP LB ssl offload (0) | 2019.11.04 |
ELK 설치 및 실행 (0) | 2019.11.04 |