[클라우드 With리눅스/서버인증과 사용자 인증]

SooYeon Yeon·2022년 8월 18일

서버 2개 연결하기

centos7은 srv7, centos8은 srv8

둘다 vmnet 10으로 되어있는 지 (동일 네트워크로 되어 있는 지 확인

[네트워크 관련 명령]

  1. IP 확인

    ip addr list

    또는

    ip addr show

    centos7 : 211.183.3.201 (server)

    centos8 : 211.183.3.111 (client)

    [centos8]

    ping -c 3 211.183.3.201

    또는

    [centos7]

    [root@srv7 ~]# yum -y install net-tools
    [root@srv7 ~]# ifconfig ens32

    게이트웨이는 확인 되지 않음

  1. ip route

    • 리눅스의 라우팅 테이블
    • default : 0.0.0.0
    [root@srv7 ~]# ip route
    default via 211.183.3.2 dev ens32 proto static metric 100 
    192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 
    211.183.3.0/24 dev ens32 proto kernel scope link src 211.183.3.201 metric 100 
  2. netstat -nr

    • 라우팅테이블
[root@srv7 ~]# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         211.183.3.2     0.0.0.0         UG        0 0          0 ens32
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0
211.183.3.0     0.0.0.0         255.255.255.0   U         0 0          0 ens32

이름을 통해 연결되도록하기

  • CentOS7, CentOS8이라는 이름으로 둘다(centos7,8)등록
  • /etc/hosts에 추가하면 됨

[centos7], [centos8]

[root@srv7 ~]# cat <<EOF >> /etc/hosts
> 211.183.3.201       centos7
> 211.183.3.111       centos8
> EOF

[root@srv7 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
211.183.3.1	myhome
211.183.3.201       centos7
211.183.3.111       centos8

ping으로 확인하기

ping -c 3 centos7
ping -c 3 centos8
  1. nslookup
  • DNS 서버에게 query하여 지정한 도메인의 IP 주소를 확인할 수 있다.
  • 참고로 일반적인 DNS 서버는 UDP/53에서 서비스한다. (TCP/53에서도 제공함)
  • 일반적으로 도메인에 대한 IP 정보는 TYPE A로 보인다.
  • www.test.com A 1.1.1.1
  • 여러 서버가 하나의 도메인을 활용하는 경우에는 CNAME을 사용하여 구성한다.
[root@srv7 ~]# nslookup
> server
Default server: 8.8.8.8
Address: 8.8.8.8#53
> www.naver.com
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
www.naver.com	canonical name = www.naver.com.nheos.com.
www.naver.com.nheos.com	canonical name = www.naver.com.edgekey.net.
www.naver.com.edgekey.net	canonical name = e6030.a.akamaiedge.net.
Name:	e6030.a.akamaiedge.net
Address: 23.196.172.185
  1. ifdown/ifup
  • 인터페이스 비활성화/활성화
  • 활성화시에는 인터페이스의 구성 파일을 읽고 실행된다.
  • 따라서 IP 주소 등을 변경했을 때는 systemctl restart network를 이용하거나 특정 인터페이스를 down > up 하여 활성화 하면 변경된 사항을 적용시킬 수 있다.
[root@srv7 ~]# gedit /etc/ssh/sshd_config
# PublicKeyAuthentication yes의 주석 해제 후 저장
[root@srv7 ~]# systemctl restart sshd

서비스 실행 시 오류가 발생한다면

  • 아래 두 명령어를 통해 확인 할 수 있다.
# 1
systemctl status sshd

# 2
journalctl -xe

[centos8]

  • 원격지에 접속하기

[root@srv8 ~]# ssh -l root centos7
The authenticity of host 'centos7 (211.183.3.201)' can't be established.
ECDSA key fingerprint is SHA256:44viTkfnNTH0bGYXYuOA02oc/YdWRpZxsZT0owY60CI.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'centos7,211.183.3.201' (ECDSA) to the list of known hosts.
root@centos7's password: 
Last login: Tue Jul 19 14:59:59 2022
=========================
	HELLO ALL
=========================
[root@srv7 ~]# exit
logout

# .ssh 파일이 만들어짐

# 다시 접속해보면 아까처럼 룸어보지 않고 사용자인증(pw입력창)이 뜸
[root@srv8 ~]# ssh -l root centos7
  • 내가가진키와 비교해 예전에 접속했던 서버가 맞으면 서버인증된거니 그 다음에 접속할땐 key 저장하는 거 안물어봄
  • .ssh에 있는 모든 파일 지우고 다시 실행해보면 키 저장을 물어보게됨

known_hosts에 등록하고 다시 ssh -l 하면 바로 password물어보게됨

스크립트로 돌려 ssh-keyscan으로

centos7부분을 나중에는 host

public key필요하고 서버 인증이 필요하고, 사용자 인증(pw)을 해야하면 접속 가능

두번째 방법

key를 이용해 접속 → 한쌍의 key pair만들기

  • root로 접속하기

[centos7]


[root@srv7 ~]# ssh-keygen -q -f ~/.ssh/testkey.pem -N ""
[root@srv7 ~]# ls ~/.ssh
known_hosts  testkey.pem  testkey.pem.pub

[root@srv7 ~]# cd ~/.ssh
[root@srv7 .ssh]# cp testkey.pem.pub authorized_keys
[root@srv7 .ssh]# systemctl restart sshd

[root@srv7 ~]# cat ~/.ssh/testkey.pem
# private key 복사

[centos8]

[root@srv8 ~]# touch testkey.pem
[root@srv8 ~]# gedit testkey.pem

# centos7에서 복사했던 private key 붙여넣기

[root@srv8 ~]# chmod 600 testkey.pem

[root@srv8 ~]# ssh -i testkey.pem centos7 ifconfig
정보나옴

[root@srv8 ~]# ssh -i testkey.pem centos7
Last login: Tue Jul 19 16:55:40 2022
=========================
	HELLO ALL
=========================

centos7(server) centos8(client)

←——- 1. 서버 인증 ————>

  • .ssh/known_host(서버 pub과 비교 맞으면 저장하고 그이후로 물어보지않음)

←——- 2. 사용자 인증 ———→

  1. 패스워드(root/test123)
  2. key-pair (public key, private key)

user1 pub /pri

user2 pub /pri

root pub /pri

testkey.pem이라는 private key만들어 클라이언트가 가져갔고, 서버쪽에는 testkey.pem.pub 파일이 있음

pub 키 3개를 묶어 .ssh/authorized_keys에 key파일 내용을 넣음

개인은 private key를 파일 형태로 가짐. /pri를 가지고 접속을 시도함. 위 파일(authorized_keys)에서 한쌍이 맞는 공개키가 있는 지 확인 후 있으면 접속할 수 있게 됨

실제 환경이라면 관리서버에서 key-pair 생성한다.

관리자는 private key를 갖는다. public key는 내가 관리하고자하는 다수의 서버에 등록시킨다.

원격지에 있는 서버에 public key를 등록하기 위해서는 ssh-copy-id를 이용한다.

관리용 서버의 .ssh/authorized_keys에 등록시킨다.

우리는 인스턴스 템플릿 이미지에 미리 public key를 넣어둘 예정이다.

0개의 댓글