우리는 centos7이라는 인스턴스를 생성했다. 주소는 211.183.3.201이고, ec2-user가 만들어져 있으며 해당 계정은 wheel 그룹에 포함되어 있어 sudo를 이용하면 필요할 때마다 루트의 권한을 불러와서 실행할 수 있다.
public key는 인스턴스에 위치하고 있으며 private key는 윈도우에서 보관하며 접속할 계획이다.
IP 점검
[root@srv7 0720]# ip addr show
...
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:55:f8:2b brd ff:ff:ff:ff:ff:ff
inet 211.183.3.201/24 brd 211.183.3.255 scope global noprefixroute ens32
valid_lft forever preferred_lft forever
inet6 fe80::d632:e7f5:b06e:f94f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
...
IP 주소가 정상적임에도 외부와 통신이 되지 않는다면
SSH 동작 상태 확인하기
[root@srv7 0720]# systemctl restart sshd
[root@srv7 0720]# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2022-07-20 10:35:42 KST; 8s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 4333 (sshd)
Tasks: 1
CGroup: /system.slice/sshd.service
└─4333 /usr/sbin/sshd -D
Jul 20 10:35:42 srv7 systemd[1]: Starting OpenSSH server daemon...
Jul 20 10:35:42 srv7 sshd[4333]: Server listening on 0.0.0.0 port 22.
Jul 20 10:35:42 srv7 sshd[4333]: Server listening on :: port 22.
Jul 20 10:35:42 srv7 systemd[1]: Started OpenSSH server daemon.
SSH를 위한 설정파일 확인하기
[root@srv7 0720]# gedit /etc/ssh/sshd_config
17번 행 : Port 22
38번 행 : PermitRootLogin yes
43번 행 : PubkeyAuthentication yes
→ 47번째 AuthorizedKeysFile은 .ssh/authorized_keys로 할 것
65번 행 : PasswordAuthentication no
계정 생성
# 계정 생성 & 비밀번호 설정
[root@srv7 ~]# useradd ec2-user
[root@srv7 ~]# passwd ec2-user
Changing password for user ec2-user.
New password:
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
Retype new password:
passwd: all authentication tokens updated successfully.
[root@srv7 ~]# su ec2-user
[ec2-user@srv7 root]$ cd
[ec2-user@srv7 ~]$ pwd
/home/ec2-user
[ec2-user@srv7 ~]$
key-pair 만들기
[ec2-user@srv7 ~]$ ssh-keygen -q -f ~/.ssh/0720.pem -N ""
[ec2-user@srv7 ~]$ ls -a
. .. .bash_logout .bash_profile .bashrc .cache .config .mozilla .ssh
[ec2-user@srv7 ~]$ ls .ssh
0720.pem 0720.pem.pub
[ec2-user@srv7 ~]$ cd .ssh
[ec2-user@srv7 .ssh]$ cat 0720.pem.pub > authorized_keys
[ec2-user@srv7 .ssh]$ ll
total 12
-rw-------. 1 ec2-user ec2-user 1675 Jul 20 10:46 0720.pem
-rw-r--r--. 1 ec2-user ec2-user 395 Jul 20 10:46 0720.pem.pub
-rw-rw-r--. 1 ec2-user ec2-user 395 Jul 20 10:47 authorized_keys
# authorized_keys에 public key가 잘 들어가 있는 지 확인
[ec2-user@srv7 .ssh]$ head -1 authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDW6H97F6dv3wjE5gXSOA/aXG2NknHnIUb8d7+eB6adufxWGBS5ACIsakR+vaL/Ukye0C+WvGzjfsfzP4DAt5sEwXy23fYGeP7+uYfwiTI1CDZsgc1KMRC2Hc0A+7vwCv55uS7Yh+Vl7/eUs/rF2IHlK3BBhLWwZbJD6lYVfFSK/KwOUJ5wcBeqRyjjbzCE5JcEkClgb8tYlOuwd3wMB05jIj35tC2SvNThbkCReppRM8Ow4IBcnhmsrMne32FFIiFmBZ4Eo3PbPfntEz0DgQCOWYewigG0sSuJ2UZnHLWxA8Z56Px+D+Kxlp1MwrOGByBON1Tkuoy9KRc0ikrIS9S3 ec2-user@srv7
[ec2-user@srv7 .ssh]$ cat 0720.pem
ec2-user 권한 변경
[root@srv7 ~]# gedit /etc/sudoers
wheel 그룹 사용자들은 루트 권한 가능하나, sudo 명령시 패스워드를 요구받는다.
107번 행 # %wheel ALL=(ALL) ALL
110번 행 %wheel ALL=(ALL) NOPASSWD: ALL
으로 107은 주석처리하고, 110번은 주석을 해제하여 wheel그룹에 추가된 사람들은 password를 묻지 않게 함
[root@srv7 ~]# usermod -aG wheel ec2-user
[root@srv7 ~]# cd /home/ec2-user/.ssh
[root@srv7 .ssh]# ls -l
total 12
-rw-------. 1 ec2-user ec2-user 1675 Jul 20 10:46 0720.pem
-rw-r--r--. 1 ec2-user ec2-user 395 Jul 20 10:46 0720.pem.pub
-rw-rw-r--. 1 ec2-user ec2-user 395 Jul 20 10:47 authorized_keys
[root@srv7 .ssh]# chmod 644 authorized_keys
putty를 이용한 원격 접속
putty generator 키기
File > load private key> save private key
putty 열기
SSH > Kex > 디피헬만 그룹14를 가장 위로, 그다음을 1로
AUTH > Private key file for authentication Browse.. > ppk파일 불러오기
Session > SSH > IP(211.183.3.201) 치고 ssh로 연결
ec2-user에서 비밀번호 없이 접속할 수 있게 됨
login as: ec2-user
ec2-user@211.183.3.201's password:
Last failed login: Wed Jul 20 11:20:11 KST 2022 from myhome on ssh:notty
There were 2 failed login attempts since the last successful login.
Last login: Wed Jul 20 10:44:43 2022
=========================
HELLO ALL
=========================
[ec2-user@srv7 ~]$ sudo systemctl restart mariadb
[ec2-user@srv7 ~]$ sudo systemctl stop firewalld
SSH 연결과정
데이터 센터 관점에서는
템플릿 이미지를 준비한다
템플릿 이미지 수정하기
key-pair 만들기
public key를 기본이미지에 추가적으로 부착
virt-customize -a test.qcow2 —upload mykey.pem.pub:/root/.ssh/authorized_keys
private key는 사용자에게 보여주거나 다운로드해 준다. 이후 개인키는 삭제한다.
템플릿 이미지를 인스턴스로 실행한다.
생성된 인스턴스의 정보는 DB에 저장한다.
사용자는 관리페이지에서 IP를 확인하고 접속
ssh -i mykey.pem IP주소
또는