Ansible 을 위한 Vagrantfile 세팅
~/vagrant/ansible/Vagrantfile
# Ansible 환경
Vagrant.configure("2") do |config|
# Define VM
config.vm.define "controller" do |centos|
centos.vm.box = "centos/7"
centos.vm.hostname = "controller"
centos.vm.network "private_network", ip: "192.168.100.10"
centos.vm.provider "virtualbox" do |vb|
vb.name = "controller"
vb.cpus = 2
vb.memory = 2048
end
end
# Define VM
config.vm.define "node1" do |centos|
centos.vm.box = "centos/7"
centos.vm.hostname = "node1"
centos.vm.network "private_network", ip: "192.168.100.11"
centos.vm.provider "virtualbox" do |vb|
vb.name = "node1"
vb.cpus = 2
vb.memory = 2048
end
end
# Define VM
config.vm.define "node2" do |centos|
centos.vm.box = "centos/7"
centos.vm.hostname = "node2"
centos.vm.network "private_network", ip: "192.168.100.12"
centos.vm.provider "virtualbox" do |vb|
vb.name = "node2"
vb.cpus = 2
vb.memory = 2048
end
end
end
파일의 인코딩은 반드시 UTF-8 이나 UTF-16 을 사용한다.
라인의 끝은 CRLF 와 LF 가 있다. CRLF 는 윈도우 계열에서 사용하고 LF 는 맥이나 리눅스에서 사용한다.
SSH
/etc/ssh/
~/.ssh/
~/.ssh/known_hosts
~/.ssh/authorized_keys
~/.ssh/config
패스워드 기반의 인증
A(Client) ———SSH ———> B(Server)
- A 는 B 의 공개키가 필요, 왜냐하면 B의 공개키로 암호화를 해야되기 때문
- B의 공개키는 서버의 /etc/ssh/ 에 있다.
- 보통의 3개의 알고리즘에 대한 키 페어가 있고 사용자가 선택할 수 있다. 기본은 RSA 를 사용한다.
- RSA
- DSA
- ECDSA
- (B 시스템에 최초 접속 시) A 시스템의 사용자에게 B의 공개키(지문)가 맞는지 확인을 한다.
- YES 라고 할 경우 A의 ~/.ssh/know_hosts 파일에 B의 공개키 등록
- B의 IP/Domain
- B의 공개키
- ID / PWD 를 묻는다.(인증)
키 기반의 인증
- A에서 (인증용)키 쌍을 생성
- ssh-keygen → ~/.ssh/id_<알고리즘> 으로 파일이 생성된다.
- ~/.ssh/ssh_host_id_rsa : 개인키
- ~/.ssh/ssh_host_id_rsa.pub : 공개키
- ssh-keygen → ~/.ssh/id_<알고리즘> 으로 파일이 생성된다.
- B에 A의 공개키를 등록해야 된다.
- B 시스템의 ~/.ssh/authorized_keys : 클라이언트의 공개키 등록
- EC2(클라우드 인스턴스) : ~/.ssh/authorized_keys 에 공개키 등록
- BM, VM : ssh-copy-id 명령어로 등록
- B에 패스워드 인증 방법이 활성화 되어 있어야 함
- (B 시스템에 최초 접속 시) A 시스템의 사용자에게 B의 공개키(지문)가 맞는지 확인을 한다.
- YES 라고 할 경우 A의 ~/.ssh/know_hosts 파일에 B의 공개키 등록
- B의 IP/Domain
- B의 공개키
- A의 개인키로 인증
기본 로그인 사용자
Amazon Linux: ec2-user
Ubuntu: ubuntu
Debian: debian
Centos: centos
RHEL: cloud-user
vagrant: vagrant
...
패스워드 확인해보기
[vagrant@controller ~]$ sudo tail /etc/shadow
dbus:!!:18382::::::
polkitd:!!:18382::::::
rpc:!!:18382:0:99999:7:::
tss:!!:18382::::::
rpcuser:!!:18382::::::
nfsnobody:!!:18382::::::
sshd:!!:18382::::::
postfix:!!:18382::::::
chrony:!!:18382::::::
vagrant:$1$gPNBpA.5$5pr.KtXhOx6S/Hc69TUZZ.::0:99999:7:::
$1 은 MD5 알고리즘, $gPNB~ 솔트값, $tpr.Kt~ 는 해싱된 패스워드이다.
컨트롤러에서 node1 으로 ssh 접속해보기
[vagrant@controller ~]$ ssh 192.168.100.11
The authenticity of host '192.168.100.11 (192.168.100.11)' can't be established.
ECDSA key fingerprint is SHA256:lPyX8lVXJ28xzzpZxlmdF24Ye3hJQWrv+OALITVMaqE.
ECDSA key fingerprint is MD5:3e:e0:ea:f9:25:9b:51:b7:d7:5e:b3:23:70:57:39:de.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.100.11' (ECDSA) to the list of known hosts.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
[vagrant@controller ~]$ ssh 192.168.100.11
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
[vagrant@controller ~]$ cat ~/.ssh/known_hosts
192.168.100.11 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHwLxDkQTCZB7TQiCs/xP1mZ1Xg1hF+7IIBliwvi+8eEdBKtu8jbwefbGcv2Gc2OAQs82uUFmhNG/XDzLsM3z2I=
[vagrant@controller ~]$
Controller 에서 node1 으로 ssh 접속 시 지문을 확인하라고 나온다.
[vagrant@controller ~]$ ssh 192.168.100.11
The authenticity of host '192.168.100.11 (192.168.100.11)' can't be established.
ECDSA key fingerprint is SHA256:lPyX8lVXJ28xzzpZxlmdF24Ye3hJQWrv+OALITVMaqE.
ECDSA key fingerprint is MD5:3e:e0:ea:f9:25:9b:51:b7:d7:5e:b3:23:70:57:39:de.
Are you sure you want to continue connecting (yes/no)?
서버의 SSH 공개키 지문 확인
[vagrant@node1 ssh]$ ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
256 SHA256:lPyX8lVXJ28xzzpZxlmdF24Ye3hJQWrv+OALITVMaqE no comment (ECDSA)
[vagrant@node1 ssh]$
관리 노드의 SSH 공개키 미리 확인하는 방법(ssh-keyscan)
EC2 인스턴스의 공개키를 확인하고 싶을 때 사용하는 명령어이다.
각각의 알고리즘을 사용한 암호화 된 키를 확인할 수 있다.
[vagrant@controller ~]$ ssh-keyscan 192.168.100.11
# 192.168.100.11:22 SSH-2.0-OpenSSH_7.4
192.168.100.11 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHwLxDkQTCZB7TQiCs/xP1mZ1Xg1hF+7IIBliwvi+8eEdBKtu8jbwefbGcv2Gc2OAQs82uUFmhNG/XDzLsM3z2I=
# 192.168.100.11:22 SSH-2.0-OpenSSH_7.4
192.168.100.11 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWGBfHZO1KTGimiNqx1ycAzVnDPl9KxEsrEvO1TzW7s6nDs1hphtVwbY+h+fFCw7mu1/66cPmWAU1vl9bwXRXxeotZIBJNcrGfJNMf4iS8OauCBdSUV87v17CbvcrPQWXXJWVdhqY158EXO50YE9H3fJSVbB+sHEKnO5bSK8TSO7y37q0U8kpG5Vb0EnYbQZe0PBXg9M1r1wrV7Kx9uTmNEhsgr7K1DmWuZKqtCGH2QA1GQVkPRdj6XBQejXfd0fH1Qst0oL+nK7jfxy5WTcynTQ91wnNtqAZ8HHvI0kOCy9iu2x4Mx61Q/6Cq26Kaaz8u2V/849HUt3jo8umxUgwb
# 192.168.100.11:22 SSH-2.0-OpenSSH_7.4
192.168.100.11 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPxq9EEWLTIU6IQRyHZKjabB+/3iH2bBNetCp2hildAr
[vagrant@controller ~]$
특정 알고리즘 타입으로 암호화 된 서버의 키를 확인
[vagrant@controller ~]$ ssh-keyscan -t ecdsa 192.168.100.11
# 192.168.100.11:22 SSH-2.0-OpenSSH_7.4
192.168.100.11 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHwLxDkQTCZB7TQiCs/xP1mZ1Xg1hF+7IIBliwvi+8eEdBKtu8jbwefbGcv2Gc2OAQs82uUFmhNG/XDzLsM3z2I=
지문 확인
[vagrant@controller ~]$ ssh-keyscan -t ecdsa 192.168.100.11 | ssh-keygen -l -f -
미리 관리 노드의 공개키 등록
[vagrant@controller ~]$ ssh-keyscan -t ecdsa 192.168.100.11 >> ~/.ssh/known_hosts
SSH 설정 파일
/etc/ssh/sshd_config 는 서버의 설정 파일, /etc/ssh/ssh_config 는 클라이언트의 설정 파일
sudo vim /etc/ssh/sshd_config 로 서버의 ssh 설정 파일을 확인한다.
PasswordAuthentication no # 패스워드 인증
GSSAPIAuthentication yes # 키 인증
현재 패스워드 인증이 막혀 있기 때문에 컨트롤러에서 node1 으로 접속을 하고 있지 못하는 상태이다.
패스워드 인증을 yes 로 설정한 후에 sshd 서비스를 재시작한다.
[vagrant@node1 ssh]$ sudo systemctl restart sshd
controller 에서 node1 으로 접속을 할 수 있게 됐다. 비밀번호는 vagrant 로 설정돼있다.
[vagrant@controller ~]$ ssh 192.168.100.11
vagrant@192.168.100.11's password:
Last login: Tue Apr 12 01:28:29 2022 from 10.0.2.2
[vagrant@node1 ~]$
ssh-keygen, ssh-copy-id 로 node1, 2에 controller 의 공개키를 등록해주기 ⇒ 키 기반 인증
ssh-keygen 으로 공개키를 생성한다. 반드시 Enter passphrase 를 설정해주는 것이 좋다.
[vagrant@controller ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
node1 서버에 controller 공개키를 세팅한다.
[vagrant@controller ~]$ ssh-copy-id 192.168.100.11
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/vagrant/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
vagrant@192.168.100.11's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '192.168.100.11'"
and check to make sure that only the key(s) you wanted were added.
[vagrant@controller ~]$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCC9ZoTGfHAFywH6LPrNtVb4T7Vgo21c2HgeUDBXRIRRDZsi/vHykw2M+bwggeyf9Vopp8HDZOqYx9qjpLnPWs1tf2w7HfHmEOpyg/6SG5NJpU7qNHdqVd1uE35hYqnc2Q+nUvUBQzjCU6pcGZeA8Iv6/R+66d6A4QWlFRQmGlWrygk27wV2LTAh2RF1PLzNcRE5v2B07CyT2eGcLsiu5NGDbkZH7DaXsItxbNYh/3tkFtx67ucnw+go//Ht6S3hbPrLmdp03AqWo3JNMbvIwr5F54icu1BYOY2zk81ZbV800mUYkkc1ot8J1rdF4c83WStUgv4CqDwuS/rgf1SJsr vagrant@controller
[vagrant@controller ~]$
node1 서버에서 authorized_keys 를 확인해보면 controller 에서 생성한 id_rsa.pub 공개키가 등록된 것을 알 수 있다.
[vagrant@node1 ssh]$ cat ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCumLdSqoDObuU9kitk8CMSAxjckMIpxCIV2QxeVT1eOvv7rcqaO9VCYRLljMixEGq9HCGvL4wyFjlcZ6SZ9YIc1o3ou/E+fAzUXL05jYZzbElAAlqanY8uwty0C/N3TXxKQ3ZQvMeRKQpAhd77fJiron9cC6cJO3/yUfeDgJLBbGGkVlaPRmz47P1x35HQ+9A6FwMjgbGWPqCJUhT3VVHFMfUsOKFyNkjvVUcZmL1p35DjIc76+R5wk1BUYpzeLp13x0z3MNxdsJB/bbPaKU49hxHRrqy9GbC3unFtl1YacraH3AHUfb6Tv02CfdLd/tvkSF9cu/XtGkg+/oAwfFaL vagrant
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCC9ZoTGfHAFywH6LPrNtVb4T7Vgo21c2HgeUDBXRIRRDZsi/vHykw2M+bwggeyf9Vopp8HDZOqYx9qjpLnPWs1tf2w7HfHmEOpyg/6SG5NJpU7qNHdqVd1uE35hYqnc2Q+nUvUBQzjCU6pcGZeA8Iv6/R+66d6A4QWlFRQmGlWrygk27wV2LTAh2RF1PLzNcRE5v2B07CyT2eGcLsiu5NGDbkZH7DaXsItxbNYh/3tkFtx67ucnw+go//Ht6S3hbPrLmdp03AqWo3JNMbvIwr5F54icu1BYOY2zk81ZbV800mUYkkc1ot8J1rdF4c83WStUgv4CqDwuS/rgf1SJsr vagrant@controller
[vagrant@node1 ssh]$
node2 도 똑같이 설정해준다.
그러면 이제 ssh 192.168.100.11, ssh 192.168.100.12 로 접속을 하면 키 인증 로그인이기 때문에 패스워드를 묻지 않고 바로 접속이 가능해진다.
[vagrant@controller ~]$ ssh 192.168.100.11
Last login: Tue Apr 12 01:56:36 2022 from 192.168.100.10
[vagrant@node1 ~]$
키 기반 인증 구성
Client
[vagrant@controller ~]$ ssh-keygen
[vagrant@controller ~]$ ssh-keyscan -t ecdsa 192.168.100.11 >> ~/.ssh/known_hosts
[vagrant@controller ~]$ ssh-keyscan -t ecdsa 192.168.100.12 >> ~/.ssh/known_hosts
[vagrant@controller ~]$ ssh-copy-id vagrant@192.168.100.11
[vagrant@controller ~]$ ssh-copy-id vagrant@192.168.100.12
Windows 에서 Vagrant SSH 접근
ssh -i .\\.vagrant\\machines\\controller\\virtualbox\\private_key vagrant@192.168.100.10 로 접속하는 것이 맞지만 너무 길기 때문에 실제로는 vagrant [가상머신이름] 으로 접속을 한다.
PS C:\\Users\\CHOI\\vagrant\\ansible> vagrant ssh controller^C
PS C:\\Users\\CHOI\\vagrant\\ansible> ssh -i .\\.vagrant\\machines\\controller\\virtualbox\\private_key vagrant@192.168.100.10
The authenticity of host '192.168.100.10 (192.168.100.10)' can't be established.
ECDSA key fingerprint is SHA256:J54F1QUI8dM7OjhW67ptwW9jxd8HGb5QXa8ADC3wm0E.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.100.10' (ECDSA) to the list of known hosts.
Last login: Tue Apr 12 00:42:36 2022 from 10.0.2.2
[vagrant@controller ~]$
~/.ssh/config
예제 파일 : https://goteleport.com/blog/ssh-client-config-file-example/
config 설정 파일을 사용해서 간단하게 ssh 접속을 할 수 있도록 세팅한다.
PS C:\\Users\\CHOI\\vagrant\\ansible> cd ~
PS C:\\Users\\CHOI> cd .\\.ssh\\
PS C:\\Users\\CHOI\\.ssh> ls
디렉터리: C:\\Users\\CHOI\\.ssh
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2022-04-12 오전 11:36 3180 known_hosts
PS C:\\Users\\CHOI\\.ssh> code config
vscode 창이 열리면 아래와 같이 설정한다.
Host controller
HostName 192.168.100.10
User vagrant
IdentityFile C:\\Users\\CHOI\\vagrant\\ansible\\.vagrant\\machines\\controller\\virtualbox\\private_key
Host node1
HostName 192.168.100.11
User vagrant
IdentityFile C:\\Users\\CHOI\\vagrant\\ansible\\.vagrant\\machines\\controller\\virtualbox\\private_key
Host node2
HostName 192.168.100.12
User vagrant
IdentityFile C:\\Users\\CHOI\\vagrant\\ansible\\.vagrant\\machines\\controller\\virtualbox\\private_key
controller 와 node1, 2 에 쉽게 접속할 수 있도록 ssh 설정 파일을 세팅했다.
PS C:\\Users\\CHOI> ssh controller
Last login: Tue Apr 12 02:36:26 2022 from 192.168.100.1
[vagrant@controller ~]$
PS C:\\Users\\CHOI> ssh node1
Last login: Tue Apr 12 02:36:26 2022 from 192.168.100.1
[vagrant@node1~]$
PS C:\\Users\\CHOI> ssh node2
Last login: Tue Apr 12 02:36:26 2022 from 192.168.100.1
[vagrant@node2~]$
EC2 인스턴스 생성 후 윈도우에서 ssh 접속해보기
ssh-keyscan 으로 EC2 인스턴스의 공개키 확인
PS C:\\Users\\CHOI\\.ssh> ssh-keyscan 13.209.186.66
# 13.209.186.66:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.3
13.209.186.66 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCz5IUSgqK02hSmhpJGBO0xTgqKbg0ZFstsziFPqaPje6IfeJB5RfWX+kyjBeqgpYfV2fLHr5z18TtfvkWt1EWQSAN0M8Zj5OAVML5Z2OL6/jhzhD7mxBYDzDpEAypRfBV4/SPdUVYsFw6jS8Of/GeLELPQPRQLfI3FLSJLriHfeW7T59fyqA+Hc/VTip8SuTJzwWbMbO/FmVFhRnJE35ENyh3gfXe2w/ZTlPoUf14o8r4e/tMQuojr7OIRoeqVjGlbe+KXEwpqUZqtSIcgaA+/9mJ28QlaT6r6sC7B2SrJv2sqPsYIGnFBALocTdZUIx9nzaHJGMz5Y574PS50OTO+X+KR2YBMIT57xcXMAnQc+OjG3hE2cNiVNpYI2PdkZ2JhiLKCaLfOdxrccw3kYNm+TatIUg5OvKbISZeoOoGoFgF53GXP3hdNAT8rrDTzo3idZuxDDenOVtXxBMwF892+r2ANlSgDIBJi1DkZLwQhfD04vUuAAPLoezqtcqVtL3k=
# 13.209.186.66:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.3
13.209.186.66 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJBaaVRwh50ofmniBP3iyLpFPttyiyD6QtJoa7GOjWYr+fZNFREYQLWuktYI7uKbTzi+lGzkHQmnb50/8sOcEu0=
# 13.209.186.66:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.3
13.209.186.66 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPPtV6zmCLnm60RrsnW49MKDy6jDIDws6T9WN3ePglJL
-t 옵션을 사용해서 특정 알고리즘으로 생성한 공개키 확인
PS C:\\Users\\CHOI\\.ssh> ssh-keyscan -t ecdsa 13.209.186.66 | ssh-keygen -l -f -
# 13.209.186.66:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.3
256 SHA256:WSMuESTJEAezPzqDuoPa072XNp3wIh9tDXjEjmaMu7c 13.209.186.66 (ECDSA)
덮어쓰기 기능을 사용하여 known_hosts 에 EC2 인스턴스의 공개키를 등록한다.
PS C:\\Users\\CHOI\\.ssh> ssh-keyscan -t ecdsa 13.209.186.66 >> C:\\Users\\CHOI\\.ssh\\known_hosts
# 13.209.186.66:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.3
ssh -i [인스턴스 생성할 때 다운로드 받은 개인 키] ubuntu@[ec2 인스턴스 ip] 로 접속을 할 수 있다.
PS C:\\Users\\CHOI\\.ssh> ssh -i .\\mytestkey.pem ubuntu@13.209.186.66
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.11.0-1022-aws x86_64)
* Documentation: <https://help.ubuntu.com>
* Management: <https://landscape.canonical.com>
* Support: <https://ubuntu.com/advantage>
System information as of Tue Apr 12 03:25:02 UTC 2022
System load: 0.02 Processes: 102
Usage of /: 18.5% of 7.69GB Users logged in: 0
Memory usage: 21% IPv4 address for eth0: 172.31.35.142
Swap usage: 0%
1 update can be applied immediately.
To see these additional updates run: apt list --upgradable
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
Last login: Tue Apr 12 03:22:20 2022 from 211.244.148.216
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.
ubuntu@ip-172-31-35-142:~$
혹은 config 파일을 설정하여 간단하게 접속 가능하게 할 수 있다. code ~\\.ssh\\config 를 열고 ec2 인스턴스 설정을 적어준다.
Host bastion
HostName 13.209.186.66
User ubuntu
IdentityFile C:\\Users\\CHOI\\.ssh\\mytestkey.pem
이제 ssh bastion 명령어를 입력하면 바로 우분투로 연결된다.
PS C:\\Users\\CHOI\\.ssh> ssh bastion
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.11.0-1022-aws x86_64)
* Documentation: <https://help.ubuntu.com>
* Management: <https://landscape.canonical.com>
* Support: <https://ubuntu.com/advantage>
System information as of Tue Apr 12 03:30:12 UTC 2022
System load: 0.0 Processes: 100
Usage of /: 18.5% of 7.69GB Users logged in: 0
Memory usage: 21% IPv4 address for eth0: 172.31.35.142
Swap usage: 0%
1 update can be applied immediately.
To see these additional updates run: apt list --upgradable
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
Last login: Tue Apr 12 03:29:59 2022 from 211.244.148.216
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.
ubuntu@ip-172-31-35-142:~$
EC2 인스턴스에 탄력적 IP 설정했을 때의 문제
known_hosts 에 인스턴스의 공개키가 등록된 상태에서 인스턴스를 삭제하고 다른 인스턴스에 탄력적 IP 를 줬을 때 당연하겠지만 접속이 불가능하다.
man-in-the-middle attact, Host Key verification failed 오류가 발생할 것이다.
왜냐하면 맨 처음 접속했던 인스턴스의 공개키가 다른 키로 변경됐기 때문이다.
만약 ssh 키가 노출됐을 경우
서버쪽 /etc/ssh/ 의 키파일들을 모두 지우고 재부팅하면 키 파일이 새로 만들어진다.