상세 컨텐츠

본문 제목

25.02.28. SSH 설정

AWS CLOUD SCHOOL 9기

by AI Engineer crystal 2025. 2. 28. 17:20

본문

Common Steps

1. .pem key 생성(rocky1 user1에서 진행)

# SSH를 생성해서 넣을 장소를 만들고 권한 설정
[user1@rocky1 ~]$ mkdir ~/.ssh && chmod 700 .ssh

# 권한 확인
[user1@rocky1 ~]$ ls -al
total 20
drwx------. 4 user1 user1  127 Feb 27 19:53 .
drwxr-xr-x. 3 root  root    19 Feb 25 22:13 ..
-rw-------. 1 user1 user1  267 Feb 27 18:58 .bash_history
-rw-r--r--. 1 user1 user1   18 Feb 10  2024 .bash_logout
-rw-r--r--. 1 user1 user1  141 Feb 10  2024 .bash_profile
-rw-r--r--. 1 user1 user1  376 Feb 10  2024 .bashrc
drwxr-xr-x. 4 user1 user1   39 Feb 25 21:52 .mozilla
drwx------. 2 user1 user1    6 Feb 27 19:53 .ssh
-rw-------. 1 user1 user1 3820 Feb 27 19:45 .viminfo

# .pem key를 생성
# 최대한 방해없이 만들기 위한 조용한 모드(-q)
# 상호 확인만(-N "")
# 파일 이름을 설정하여(-f) 설정
[user1@rocky1 ~]$ ssh-keygen -q -N "" -f rocky1.pem

# 생성된 .pem key 확인
[user1@rocky1 ~]$ ll
total 8
-rw-------. 1 user1 user1 2602 Feb 27 19:55 rocky1.pem
-rw-r--r--. 1 user1 user1  566 Feb 27 19:55 rocky1.pem.pub

# 공유할 공개키를 확인
[user1@rocky1 ~]$ cat rocky1.pem.pub 

# 확인된 공개키를 복사

2. .pem.pub key 저장(rocky2 user1에서 진행)

# SSH를 복사해서 넣을 장소를 만들고 권한 설정
[user1@rocky2 ~]$ mkdir ~/.ssh && chmod 700 .ssh

# 권한 확인
[user1@rocky2 ~]$ ls -al
total 12
drwx------. 4 user1 user1  90 Feb 27 19:53 .
drwxr-xr-x. 3 root  root   19 Feb 25 22:15 ..
-rw-r--r--. 1 user1 user1  18 Feb 10  2024 .bash_logout
-rw-r--r--. 1 user1 user1 141 Feb 10  2024 .bash_profile
-rw-r--r--. 1 user1 user1 376 Feb 10  2024 .bashrc
drwxr-xr-x. 4 user1 user1  39 Feb 25 21:54 .mozilla
drwx------. 2 user1 user1   6 Feb 27 19:53 .ssh

# 저장할 파일 생성하고 열어서 복사한 .pem.pub 붙여넣고 저장
[user1@rocky2 ~]$ vi ~/.ssh/authorized_keys

# 파일의 권한 설정
[user1@rocky2 .ssh]$ chmod 600 authorized_keys 

직접 생성

3. .pem key 생성(rocky1 user1에서 진행)

# SSH 키를 붙여넣기
[user1@rocky1 ~]$ ssh-keyscan [rocky2 IP주소] >> .ssh/known_hosts
# [rocky2 IP주소]:22 SSH-2.0-OpenSSH_8.0
# [rocky2 IP주소]:22 SSH-2.0-OpenSSH_8.0
# [rocky2 IP주소]:22 SSH-2.0-OpenSSH_8.0

[user1@rocky1 ~]$ ssh -l user1 -i rocky1.pem [rocky2 IP주소]
Activate the web console with: systemctl enable --now cockpit.socket

간단한 방법

3. .ssh/config 파일 생성

Host # ← 접속하고 싶은 서버의 이름 
    Hostname   # ← 접속하고 싶은 서버의 IP
    User       # ← 원격지 서버에 접속하고자 할 때 어떠한 사용자로 로그인 할 것인가?
    IdentityFile   # ← 위에서 지정한 “User’ 로 로그인할 때 어떠한 개인키를 사용할 것인가?
    StrictHostKeyChecking    # ← 원격서버의 public 키가 없다고 하더라도 추가로 저장하지 않는다. 즉, 서버 인증 단계는 하지 않겠다!!!! 
# 권한 설정
chmod 600 ~/.ssh/config

기타) key-pair 이용해서 원격 서버 접속하기(MobaXterm)

  1. rocky1 에서 user1 으로 로그인 하여 새로운 key-pair 를 하나 만든다 → mykey0228.pem
  2. [user1@rocky1 ~]$ ssh-keygen -q -N "" -f mykey0228.pem
  3. mykey0228.pem.pub 공개키의 내용을 복사하여 rocky1, rocky2 의 /home/user1/.ssh/ 하위의 authorized_keys 에 붙여넣기 한다.
  4. rocky1 에서 생성한 mykey0228.pem 의 내용을 복사하여 윈도우의 바탕화면에 메모장을 이용하여 mykey0228.pem 으로 저장한다.
  5. mobaxterm 이용하여 rocky1, rocky2 의 user1 으로 (feat. mykey0228.pem 메모장) ssh 연결을 시도한다!!!

사용자 관리와 파일 속성

# 새로운 사용자 추가 && 암호화된 암호 설정
[root@rocky2 ~]# useradd user2 && echo 'user2:test123' | chpasswd
[root@rocky2 ~]# cat /etc/passwd | grep user2
user2:x:1001:1001::/home/user2:/bin/bash
[root@rocky2 ~]# cat /etc/shadow | grep user2
user2:$6$bdb2UacsBD8w1$vk7smlJL1DjGUc5i2qN5v4fJQaGdp3FCB5Ka6rpb.EmuvNAtGaPvbXs31tnqPfSC5221W                              UNWp.2QcTQQSSF0o/:20147:0:99999:7:::
# 기존에 있는 사용자에게 Primary Group을 명시한 그룹으로 부여
[root@rocky2 ~]# usermod -g root user2
[root@rocky2 ~]# groups user2
user2 : root

# 기존에 있는 사용자에게 Secondary Group을 명시한 그룹으로 부여
[root@rocky2 ~]# usermod -g root user2
[root@rocky2 ~]# groups user2
user2 : wheel

# 기존 순서 유지하면서 그룹 추가로 부여
[root@rocky2 ~]# usermod -aG wheel user2
[root@rocky2 ~]# groups user2
user2 : root wheel
# user1에서 root에 있는 파일의 권한 설정 변경
[user1@rocky2 ~]$ sudo chmod 755 /root
[user1@rocky2 root]$ sudo chown user1.user1 fromroot.txt

 

관련글 더보기