0227 THU | vi 편집기, SSH, MobaXterm

iburnius·2025년 3월 22일

AWS

목록 보기
3/6

리눅스 기본 내용

  • linux : unix > linux kernel > shell + app => 배포판 리눅스
  • 배포판 리눅스
    • Debian → ubuntu (docker, kubernetes)
    • RedHat → RHEL , Rocky (인프라 관리)

리눅스 특징

  • multi-user이면서 multi-tasking 환경을 지원한다.
    • super-user: 시스템 전체 관리 → root
    • normal: root가 생성한 리눅스 내의 일반 사용자 → user1 (기본적으로는 자신의 홈 디렉토리에서는 모든 작업이 가능하지만 다른 디렉토리에 대한 접근은 제한된다.)
  • 리눅스 파일 시스템: tree
  • boot: 부팅을 위한 커널이 존재하는 디렉토리
[root@rocky1 ~]# ls /
a.txt  boot   dev  home  lib64  mnt  proc  run   srv  tmp  var
bin    b.txt  etc  lib   media  opt  root  sbin  sys  usr
[root@rocky1 ~]# ls /boot
config-4.18.0-553.el8_10.x86_64
efi
grub2
initramfs-0-rescue-b87d17b2fd92436aa94987c7c6b54f03.img
initramfs-4.18.0-553.el8_10.x86_64.img
initramfs-4.18.0-553.el8_10.x86_64kdump.img
loader
symvers-4.18.0-553.el8_10.x86_64.gz
System.map-4.18.0-553.el8_10.x86_64
vmlinuz-0-rescue-b87d17b2fd92436aa94987c7c6b54f03
vmlinuz-4.18.0-553.el8_10.x86_64
  • dev: 리눅스의 장치들을 관리하는 디렉토리
[root@rocky1 ~]# ls /dev
autofs           kmsg          pts       tty15  tty35  tty55    vcs1
block            log           random    tty16  tty36  tty56    vcs2
bsg              loop-control  raw       tty17  tty37  tty57    vcs3
cdrom            lp0           rl        tty18  tty38  tty58    vcs4
char             lp1           rtc       tty19  tty39  tty59    vcs5
console          lp2           rtc0      tty2   tty4   tty6     vcs6
...
💡

mount & /dev/sr0은 뭐지?

[root@rocky1 ~]# mount | grep sr0
/dev/sr0 on /run/media/root/Rocky-8-10-x86_64-dvd type iso9660 (ro,nosuid,nodev,relatime,nojoliet,check=s,map=n,blocksize=2048,uid=0,gid=0,dmode=500,fmode=400,uhelper=udisks2)
  • mount: 리눅스의 장치는 물리 장치와 논리 장치가 있다. 이 두 장치를 연결해서 사용해야 하는데 이를 마운트(mount)라고 한다.
  • /dev/sr0: 물리 장치. 일반적으로 첫 번째 CD-ROM 또는 DVD 드라이브를 나타낸다.
  • /run/media/root/Rocky-8-10-x86_64-dvd : 논리 장치
  • mount | grep sr0 : 시스템에 마운트된 파일 시스템 목록 중에서 sr0 라는 문자열을 포함하는 항목만 필터링하여 출력한다.
  • 연결을 해제할 때(unmount 할 때) 명령어는 umount 이다.
  • etc: 서비스를 위한 구성 파일들이 존재하는 디렉토리
[root@rocky1 ~]# ls /etc
accountsservice             hosts                      profile
adjtime                     hp                         profile.d
aliases                     idmapd.conf                protocols
alsa                        init.d                     pulse
alternatives                initial-setup              qemu-ga
...
[root@rocky1 ~]# cd /etc/ssh
[root@rocky1 ssh]# ls
moduli        ssh_host_ecdsa_key        ssh_host_rsa_key
ssh_config    ssh_host_ecdsa_key.pub    ssh_host_rsa_key.pub
ssh_config.d  ssh_host_ed25519_key
sshd_config   ssh_host_ed25519_key.pub

👀 /(슬래시)를 사용해서 경로를 찾으면 절대경로로 찾는 방식으로, 위에서부터 찾아내려감!

  • usr: 실행 파일들이 주로 존재하는 디렉토리
[root@rocky1 ssh]# which ping
/usr/bin/ping

[root@rocky1 ssh]# which sshd
/usr/sbin/sshd

[root@rocky1 ssh]# which echo
/usr/bin/echo

[root@rocky1 ssh]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/root/bin

👀 $PATH는 환경변수로써 각 사용자가 로그인을 하면 사용자별로 지정된 변수에 값을 부여하여 사용할 수 있도록 제공된다. 이때 PATH 환경 변수는 해당 경로에 있는 실행파일들은 전체 경로를 다 쓰지 않고 명령어만 쓰더라도 실제 경로에 있는 실행파일이 동작하도록 제공된다.

  • root: 슈퍼 유저의 홈 디렉토리
  • home: 기본적으로 일반 사용자들의 홈 디렉토리 (변경 가능)
  • var: 실시간으로 발생하는 데이터.
    • e.g. 로그에 대한 내역이 저장되는 파일들이 존재한다.
    • 데이터베이스(mariaDB, mysql)의 경우 실시간 데이터 정보가 /var/lib/mysql 하위에 존재하게 된다.

런레벨 Run Level

리눅스 시스템은 전체 시스템과 각각의 애플리케이션 별로 동작 환경을 지정할 수 있는 번호가 있다. 이를 run level 이라 부른다.

  • 0 : poweroff → init 0 라고 하면 시스템이 종료된다.
  • 1 : 복구 모드 → single user 가 접속하여 패스워드를 복구하는 등의 긴급상황에서 다른 접속을 차단한 뒤 혼자서만 작업할 수 있는 모드
  • 3 : multi-user/CLI → systemctl set-default multi-user.target
  • 5 : multi-user/GUI → systemctl set-default graphical.target
  • 6 : reboot → init 6 라고 하면 시스템이 재부팅된다.

리눅스는 부팅이 되면 런레벨을 확인하여 해당 모드로 부팅이 되고 시스템 환경 변수를 로그인한 사용자에게 부여한다.

로그인한 사용자는 ~/.bashrc 에 있는 내용을 현재의 환경에 적용시켜준다.

정상적으로 시스템이 부팅되고 사용자가 로그인을 했다면 리눅스 시스템은 리눅스 전체를 구동 시키기 위한 부모 프로세스를 실행 시킨다. → systemd

  • pstree: 프로세스 목록을 트리 형식으로 보여줌
  • pstree -p: 프로세스 목록의 실행 순서를 숫자로 표현하여 트리 형식으로 보여줌
    • systemd는 항상 1번(첫번째 순서)으로 실행됨
# ps: 현재 실행중인 프로세스 목록
# -e: 모든 프로세스 출력
# -f: 풀 포맷으로 보여줌(UID, PID 등)
[root@rocky1 lab1]# ps -ef | grep firewalld
root         928       1  0 19:19 ?        00:00:01 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid
root        8184    2948  0 20:29 pts/0    00:00:00 grep --color=auto firewalld

[root@rocky1 lab1]# kill -9 928 # -9 = SIGKILL: 프로세스 강제 종료
[root@rocky1 lab1]# systemctl stop firewalld
[root@rocky1 lab1]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
  • systemctl stop firewalld: 지금 당장 중지
  • systemctl disable firewalld: 재부팅 이후에도 재활성화 되지 않는다. stop을 안하고 disable만 한다면 지금 당장 중지되지 않고 재부팅 이후에 중지되는 것이다.

리눅스 기본 명령

<이것이 리눅스다> p.193-197

  1. ls: list, 목록 확인(a - 숨긴 파일/디렉토리, l - 상세정보)
  2. cd: 경로 이동(절대 경로 / , 상대 경로 . , ..)
    • cd ~: 홈디렉토리
    • cd -: 직전 디렉토리
  3. pw: 작업 경로 확인
  4. rm: 파일 삭제
    • +r: 디렉토리 삭제 가능하다.
    • -f: 강제 삭제
    • rm -rf ⭐: 최상위 디렉토리 밑에 있는 모든 파일과 디렉토리를 삭제하고, 마지막으로 자기 자신까지 삭제하는 명령어
  5. cp: 파일 복사
    • -r: 디렉토리 복사
  6. touch: 빈파일 생성
  7. mv: 이동하기. 원본을 다른 경로로 이동 시킬 수 있다. 단, 동일 디렉토리 내에서의 이동은 ‘이름 변경’의 효과가 있다!!
  8. cat: 파일 내용 읽고 출력 > (부등호)와 함께 사용할 경우 결과를 별도의 파일로 저장하는 것도 가능하다.
  9. head, tail: 파일의 전체 내용을 출력하는 것이 아니라 상위 10줄, 또는 하위 10줄만 출력한다.
    • -3: 위 또는 아래 3줄을 볼 수 있다. (-2, -5 … 모두 가능)
  10. more: cat은 전체 내용을 화면에 출력하고 프롬프트를 반환한다. more명령어는 긴 파일을 한 페이지씩 보여주는 명령어이다.
  11. less: more에 추가적으로 pageup, pagedown 키를 사용할 수 있다.

파일 편집

p.167-

gedit은 run level 5에서만 동작하므로 반드시 그래픽 환경에서 실행시켜야 한다.

행단위 편집기

: 파일을 직접 열고 편집을 하는 것이 아니라 프롬프트에서 명령을 통해 파일에 변경사항을 전달하는 형태 → sed

[root@rocky1 ~]# touch test.txt
[root@rocky1 ~]# gedit test.txt

[root@rocky1 ~]# sed -i 's/linux/hello/g' test.txt # 'linux' -> 'hello' 변경
[root@rocky1 ~]# cat test.txt
hello
Linux
windows
hello is ...
  • 마지막 행 추가(nice to meet you, hello !!!!)
[root@rocky1 ~]# gedit test.txt

[root@rocky1 ~]# cat test.txt
hello
Linux
windows
hello is ...
nice to meet you, hello !!!!

Quiz 1.

hello로 시작하는 문자열에서 ‘hello’를 ‘hi’로 변경해보세요.

💡

정규표현식 사용! (^)

[root@rocky1 ~]# sed -i 's/^hello/hi/g' test.txt # '^hello'는 'hello'로 시작하는 문자열을 검색함
[root@rocky1 ~]# cat test.txt
hi
Linux
windows
hi is ...
nice to meet you, hello !!!! # 'hello'로 시작하지 않기 때문에 적용 안됨!

화면단위 편집기


: 파일의 내용을 직접 화면에 열고 수정, 삽입, 삭제 등을 할 수 있다. 줄 단위 삭제, 줄 단위 복사/붙여넣기 → emacs, vi(m)

[root@rocky1 ~]# echo "alias vi='vim'"
alias vi='vim'
[root@rocky1 ~]# echo "alias vi='vim'" >> ~/.bashrc
[root@rocky1 ~]# tail -1 ~/.bashrc
alias vi='vim'
[root@rocky1 ~]# source ~/.bashrc

  • ; : 앞에 있는 명령어가 실패하더라도 뒤에 명령어 실행됨

  • SWAP(스왑): 시스템 메모리(RAM)의 확장 역할을 하는 디스크 공간을 말한다. 스왑 공간은 시스템 메모리가 부족할 때 데이터를 임시로 저장하여 메모리 부족 문제를 해결하는데 도움을 준다. (가상 메모리)

  • RAM: 휘발성 메모리 → Disk(file) 저장해줘야함


p.172

vi a.txt

해서 vi에 들어가서 입력할 때

  • i입력: 내가 있는 줄에서 입력
  • o입력: 내가 있는 줄의 다음 줄에서 입력
  • vi 빠져나가기: esc키, : 입력, wq | q | q!입력, enter
    • wq: 저장 후 퇴장
    • q: 그냥 퇴장
    • q!: 저장하지 않고 강제 퇴장

p.176-177

vi 환경 명령모드 키

  1. 이동하기
  • ^ (캐럿): 행의 맨 앞으로 이동
  • $ (달러): 행의 맨 뒤로 이동
  • gg: 첫 행으로 이동
  • G: 마지막 행으로 이동
  • 3G: 세번째 행으로 이동(nG)
  1. 삭제하기
  • dd : 현재 행 삭제
  • 2dd: 현재 커서부터 숫자만큼의 행 삭제
  • u: 삭제 복구(undo)
  • ctrl + r: redo
  1. 복사/붙여넣기
  • yy: 현재 행 복사
  • p(소문자): 복사한 내용을 현재 행 이후에 붙여넣기
  • P(대문자): 복사한 내용을 현재 행 이전에 붙여넣기
  1. 명령 모드에서 문자열 찾기를 위한 키
  • /문자열 + enter: 해당 문자열을 찾음(현재 커서 이후로)
  • n: 찾은 문자 중에서 다음 문자로 이동
  1. 문자열 치환
  • :%s/기존문자열/새문자열 : 기존문자열→새문자열로 변경

  • vi에서 행 번호 표시하기: etc + :set number


Quiz2.

vi로 etc 밑에 있는 sudoers 파일에 가서 111행에 ‘user1 ALL=(ALL) NOPASSWD: ALL” 을 저장하고 빠져나가기

💡
[root@rocky1 lab0227]# vi /etc/sudoers


:wq 입력 시

:wq! 입력하면 됨


SSH로 접근

SSH: 원격 접속을 위한 도구. GUI가 아닌 CLI 방식으로 접근한다.

ssh → 사용자, 그룹

ssh를 위한 인증

  • 보안: 인증(Authentication), 인가(Authorization), 과금(Account)
    • 인증 - username/pass
    • 인가 - token(role, 유효기간)
    • 과금 - 인증에 성공한 사용자가 로그인부터 로그아웃까지 얼마의 시간 동안 서비스를 사용했는가를 확인

오늘 해볼 건 인증이다.

  • SSH 인증 과정
    1. 서버 인증 (사용자가 서버를 인증하는 단계)
      a. key-pair를 이용한다.
    2. 사용자 인증 (서버가 사용자를 인증하는 단계): 서버 인증을 거친 서버에서 사용자가 정상적인 사용자가 맞는지 여부를 확인한다. 서버 내부에 있는 사용자가 맞는지 여부를 확인한다.
      b. username과 password 이용
      - 서버에 저장되어 있는 root/test123 여부를 확인한다.
      - 만약 서버에 있는 사용자와 패스워드가 맞다면 둘 사이에는 ssh 통신을 위한 session이 만들어진다.
      - 사용자의 패스워드는 단순하여 노출의 위험이 있다.
      1. username과 keypair 이용 → 거의 대부분 이 방법 사용

MobaXterm

[DSO12.DESKTOP-DIRH5RI]whoami
DSO12


[DSO12.DESKTOP-DIRH5RI]ssh -l root 211.183.3.11 # 로그인할 계정을 root로 설정하여 해당 ip에 ssh 접속
The authenticity of host '211.183.3.11 (211.183.3.11)' can't be established.
ED25519 key fingerprint is SHA256:eSeEYPQYafaNn/himfif4E8wy7xEvxsIslE2xEJWVFs.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Please type 'yes', 'no' or the fingerprint: yes
Warning: Permanently added '211.183.3.11' (ED25519) to the list of known hosts.
root@211.183.3.11's password:
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Wed Feb 26 22:37:30 2025 from 211.183.3.1
[root@rocky1 ~]# ls -a # rocky1으로 접속됨
.                .bash_profile  .dbus          ifcfg-ens160          Music       .tcshrc    .vimrc
..               .bashrc        Desktop        initial-setup-ks.cfg  Pictures    Templates  .Xauthority
...
[root@rocky1 ~]# exit
logout
Connection to 211.183.3.11 closed.

[DSO12.DESKTOP-DIRH5RI]ls -a
.  ..  .bash_history  .ssh  Desktop  LauncherFolder  MyDocuments

[DSO12.DESKTOP-DIRH5RI]ls .ssh
known_hosts  known_hosts.old

[DSO12.DESKTOP-DIRH5RI]cat .ssh/known_hosts
211.183.3.11 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMo7C2tVUVBwwDlLrYxSl9YYBcC5+bSAM8M86dn1i57c
211.183.3.11 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDDKtKu1T7A74TgLbUz+t3J0Qwlx9C7W/L2XlukkXjLcKFpneie0tI6SMV/fH/fcBPKb4ZoJt6ruTEHPma8x9uSRjsBFRZm0AtSBvByLlotebkCOBo9RhHuvKnONV4QFYLpGL3N8i5WhDolpihF/83HYCvRvVeqvPRmVyLkM2EqRhd5nQWuhcTF7W43/vIl1QtajwvHhc/XrNGSpocz0katlqeiCm9eWyZYat1t7g/MuBaJaWnrc8HFxa5jpi/c5by7hizn/foJ9NFrBqvtYe9M5NCvTK37lPk0w2Q3bUR4vjzLIKCwdYRhSpAXbSu+LGIxyvo1eUiJkpi+IqOfOsIQFetg1vV63yej3apqEFxCjeltq17saCTXRPGYk/A8DPEp1PIhz5JyNYXi2MEY55GprfZ+1Gs/n+GjvAs41gOp7iPe43YH6fN6nRZwcWDNc3YCKQdPgqMonBc96XXM2deGm5uqN5b8e8TnaSAnmoDFvF5VGJI34uVkzPSZ+Kfh0cE=
211.183.3.11 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBO9nFx7oADIJ30soTZnUn0TvCx1PsQ/E828BcBC1biUENXCWLlLXkPGlOrrjppTl1mNED2WHYH1FUKHTvrRW2f
[DSO12.DESKTOP-DIRH5RI]ssh -l root 211.183.3.11
root@211.183.3.11's password:
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Thu Feb 27 00:08:22 2025 from 211.183.3.1
[root@rocky1 ~]#

Hash 암호화

  • md5: 해시 제너레이터. 임의의 길이의 값을 입력받아서 128비트 길이의 해시값을 출력하는 알고리즘

  • hash: 원본 데이터를 의미하는 고정된 길이의 문자열을 발생시킨다. 이는 데이터의 무결성을 체크하기 위한 목적이다.

  • user가 만든 public key는 서버의 .ssh/authorization_keys에 저장

- `ssh-keygen -q -N "" -f mykey.pem` 명령어는 비밀번호 없이(`-N ""`), 출력 메시지를 최소화한 상태로(`-q`), `mykey.pem`이라는 이름의 SSH 개인 키 파일을 생성하고(`-f mykey.pem`), 그에 해당하는 공개 키 파일은 `mykey.pem.pub`로 생성하는 명령어이다.

p. 209 파일 유형, 파일 허가권

[root@rocky1 ~]# ls ~ -al # a: 숨김 파일을 포함한 모든 파일 표시, l: 상세 정보 출력
total 92
...
drwxr-xr-x.  2 root root     6 Feb 26 00:04 Public
-rw-r--r--.  1 root root   201 Feb 26 20:42 result.txt
-rw-------.  1 root root 12288 Feb 26 21:41 .swp
-rw-r--r--.  1 root root   129 Mar 14  2021 .tcshrc
...

# .ssh 디렉토리 생성
[root@rocky1 ~]# mkdir ~/.ssh
[root@rocky1 ~]# vi ~/.ssh/authorized_keys
[root@rocky1 ~]# ls ~ -al
total 92
...
drwxr-xr-x.  2 root root     6 Feb 26 00:04 Public
-rw-r--r--.  1 root root   201 Feb 26 20:42 result.txt
drwxr-xr-x.  2 root root    29 Feb 27 00:53 .ssh
-rw-------.  1 root root 12288 Feb 26 21:41 .swp
-rw-r--r--.  1 root root   129 Mar 14  2021 .tcshrc
...
[root@rocky1 ~]# chmod 700 .ssh # .ssh 디렉토리의 권한을 소유자만 읽고, 쓰고, 실행할 수 있도록 설정
[root@rocky1 ~]# ls .ssh -l
total 4
-rw-r--r--. 1 root root 103 Feb 27 00:53 authorized_keys
[root@rocky1 ~]# chmod 600 .ssh/authorized_keys # 소유자에게 읽기, 쓰기 권한 부여
  • chmod: 파일 또는 디렉토리의 권한 수정
    • 700: 소유자만 모든 권한을 가지며, 그룹과 다른 사용자는 권한이 없도록 설정
    • 600: 소유자만 파일을 읽고 쓸 수 있도록 하고, 그룹과 다른 사용자는 파일에 접근할 수 없도록 설정
    • _ _ _ (소유자 권한, 그룹 권한, 다른 사용자 권한)
    • 읽기(r), 쓰기(w), 실행(x) - 각 4, 2, 1
    • → 7이면 모든 권한, 6이면 읽기 쓰기 권한, 0이면 아무 권한 없음.

클라우드



ssh 접속 시 keypair 인증에 실패할 경우 password 인증이 되지 않도록 하고 싶다면?

ssh 서버 설정에 대한 파일 내용을 수정해 주어야 한다.

[root@rocky1 ~]# vi /etc/ssh/sshd_config

# 변경 내용 즉시 반영
[root@rocky1 ~]# systemctl restart sshd
  • 원격지 서버의 public key 를 수집해 오기!!!!

    매번 동일한 접속을 할 때 마다 사용자 이름, 키페어 이름 입력하는 것 번거롭다. 또한 수많은 서버의 public key 를 known_hosts 에 저장할 때마다 yes 를 타이프 하는 것도 또는 ssh-keyscan 이용하여 서버들의 pub 키를 수동으로 수집해 오는 것도 번거로운 일이다.

이러한 번거로움을 덜기 위해 사용자는 .ssh/config 파일을 생성하고 이를 손쉽게 해결할 수 있다.


Task.

.ssh/config

Host ← 접속하고 싶은 서버의 이름

Hostname   ← 접속하고 싶은 서버의 IP

User            ← 원격지 서버에 접속하고자 할 때 어떠한 사용자로 로그인 할 것인가?

IdentityFile   ← 위에서 지정한 “User’ 로 로그인할 때 어떠한 개인키를 사용할 것인가?

StrictHostKeyChecking     ← 원격서버의 public 키가 없다고 하더라도 추가로 저장하지 않는다. 즉, 서버 인증 단계는 하지 않겠다!!!!

위의 내용을 참고하여

ssh rocky1 이라고 하면 원격 서버에 접속이 가능해야 합니다!!!

ssh rocky2 이라고 하면 원격 서버에 접속이 가능해야 합니다!!!

💡
[DSO12.DESKTOP-DIRH5RI]touch .ssh/config
[DSO12.DESKTOP-DIRH5RI]vi .ssh/config

[DSO12.DESKTOP-DIRH5RI]ssh rocky1
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Thu Feb 27 01:04:36 2025 from 211.183.3.1
[root@rocky1 ~]# exit
logout
Connection to 211.183.3.11 closed.

[DSO12.DESKTOP-DIRH5RI]ssh rocky2
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Thu Feb 27 01:28:07 2025 from 211.183.3.1
[root@rocky2 ~]# exit
logout
Connection to 211.183.3.12 closed.
  • ssh rocky1, ssh rocky2로 접속 가능! ✅

인터페이스의 IP 주소 변경하기

[root@rocky1 ~]# cd /etc/sysconfig/network-scripts/
[root@rocky1 network-scripts]# ls
ifcfg-ens160
  • 백업파일 만들기
[root@rocky1 network-scripts]# cp ifcfg-ens160 ~/ifcfg-ens160.bak
[root@rocky1 network-scripts]# ls ~
a                Downloads             lab1      result.txt  x.txt
anaconda-ks.cfg  ifcfg-ens160          labl      Templates
c                ifcfg-ens160.bak      Music     test2
Desktop          initial-setup-ks.cfg  Pictures  test.txt
Documents        lab0227               Public    Videos
[root@rocky1 network-scripts]# gedit ifcfg-ens160

  • DHCP: Dynamic Host Configuration Protocol

- IP를 동적할당 해준다.
  • IPADDR을 211.183.3.101로 변경한다.
# ip 변경 내용 적용
[root@rocky1 network-scripts]# ifconfig ens160 down
[root@rocky1 network-scripts]# ifconfig ens160 up
# ip 확인
[root@rocky1 network-scripts]# ip a

아직 변경이 안되어서 다른 명령어 시도

[root@rocky1 network-scripts]# systemctl restart NetworkManager
[root@rocky1 network-scripts]# ifconfig ens160 down
[root@rocky1 network-scripts]# ifconfig ens160 up
[root@rocky1 network-scripts]# 
[root@rocky1 network-scripts]# hostname -I
211.183.3.101 192.168.122.1

→ 성공 👍🏻

rocky2는 211.183.3.102로 변경하기 ✅


Quiz3.

root 에서 할 일 :

  1. /etc/hosts 파일에서 IP 주소를 수정하여 ping rocky1 -c 3 이 가능하도록
  2. vi /etc/sudoers 파일의 111 행에 아래의 내용을 추가해 주세요

user1 에서 해야할 일 (rocky1 에서 )

루트의 명령어를 실행할 필요가 있는 경우에는 명령어 앞에 sudo 를 추가해야 한다. 이 경우 일시적으로 root 의 권한을 이용할 수 있다.

  1. user1 이 key-pair 를 생성한다.
  2. public-key 는 원격지 서버(rocky2)에 저장한다.
  3. rocky1 에서 ssh rocky2 를 이용하여 ssh 연결이 가능하도록 .ssh 하위에 config 파일을 구성해 주세요!!!

결론 : rocky1 의 user1 에서 rocky2 의 user1 으로 접속할 수 있어야 한다!!!

💡

root 에서 할 일 :

  1. rocky1, rocky2 모두 /etc/hosts 파일의 ip 주소를 수정한다.

[root@rocky1 ~]# gedit /etc/hosts
[root@rocky1 ~]# ping rocky1 -c 3
PING rocky1 (211.183.3.101) 56(84) bytes of data.
64 bytes from rocky1 (211.183.3.101): icmp_seq=1 ttl=64 time=0.097 ms
64 bytes from rocky1 (211.183.3.101): icmp_seq=2 ttl=64 time=0.090 ms
64 bytes from rocky1 (211.183.3.101): icmp_seq=3 ttl=64 time=0.128 ms

--- rocky1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2060ms
rtt min/avg/max/mdev = 0.090/0.105/0.128/0.016 ms
  1. vi /etc/sudoers/로 vi에 들어가서 111행에 추가

💡

user1 에서 해야할 일 (rocky1 에서 )

-필기 여기까지-

profile
좋아 가는거야

0개의 댓글