터미널을 이용하여 명령문 내리기
터미널이란?
여러분이 보고있는 검은색 창이 리눅스 터미널 입니다.
쉘(shell)이란?
터미널에서 내려진 명령을 해석하는 도구 인터페이스(도구) 입니다.
- sh(본쉘), bash 등이 있다.
커널(kernel)이란?
운영체제와 하드웨어를 이어주는 핵심 기능 , 컴퓨터 시스템 자원들을 관리하는 역할
사용자가 명령 터미널을 통해 입력하면 쉘 이 명령을 받아 해석하고 커널 에 전달하면 커널 을 통해 하드웨어 조작을 하게 됩니다.
사용자가 명령 터미널을 통해 입력하면 쉘 이 명령을 받아 해석하고 커널 에 전달하면 커널 을 통해 하드웨어 조작을 하게 됩니다.
- 리눅스는의 관리자 계정 root계정이 존재합니다.
- 리눅스를 사용하는 모든 사람들은 root가 관리자 라는 것을 알기 때문에 관리자 계정으로 바로 로그인하는 것이 아니라, 일반 계정으로 접속해서 관리자로 전환하여 사용한다.
- 리눅스의 명령문들은 관리자 권한이 있어야 실행시킬 수 있는 명령이 있고, 누구든 사용할 수 있는 명령이 있습니다.
- 관리자의 권한 sudo루트 권한으로 변경하게 되면 모든 권한을 얻게 됩니다.예시sudo reboot사용자 계정으로 전환root 계정으로 전환탈출
- exit q CTRL + C
- sudo su - root sudo su -
- su 계정명
- root 계정의 전환 (관리자의 계정으로 전환 할 때는 관리자 권한이 필요합니다)
- 리부팅 명령 (관리자의 권한으로 실행함)
- 관리자의 권한만 빌려쓰고 싶다면 sudo 를 앞에 붙입니다.
- sudo는 관리자의 권한을 의미한다.
- 출력문 실행하기 echoecho 출력문전역 환경변수 확인하기
- 리눅스는 프로그램을 실행할 때 해당 환경 변수에 등록된 값을 우선적으로 찾아서 실행하게 됩니다.
- 예를 들어 자바 컴파일러를 실행하고 싶다면 환경 변수에 등록이 되어 있어야 합니다.
- echo $PATH
- echo hello world
- echo는 커널창의 출력을 명령합니다.
- 명령문의 매뉴얼 확인하기 man
- 명령문을 실행할 때 하이픈( - ) 을 이용하여 옵션을 줄 수 있습니다.
- 이런 옵션들의 확인은 man 명령문 을 이용해서 확인 가능합니다.
- 이런 옵션들은 너무 다양하기 때문에 실제 man명령으로는 간단하게 확인하고 구글을 이용하는 편이 좋습니다.
리눅스에 외부 접속 도구(putty) 를 이용해서 연결해보기
- VMware자체에서 제공하는 커널은 확대도 되지 않고, 매우 불편하기 때문에 외부 원격 접속으로 편하게 사용하려 합니다.
- 보통 99.99% putty를 이용해서 접속합니다
- putty를 사용해서 접속하려면 SSH에 대한 개념을 알아야 합니다.
CS지식 올리기 - OSI 7계층(패킷의전송)
응용계층 - 어플리케이션 계층
프리젠테이션계층 - 암호화처리
세션계층 - 인증처리
전송계층 - TCP/UDP 통신의 결정
네트워크계층 - IP찾음
데이터계층 - 데이터 싣는다
물리계층 - 광케이블타고 신호전송
SSH란? - Secure Shell Protocol
SSH는 Secure Shell Protocol의 줄임말로 보안이 강화된 서버 원격 접속 및 제어 도구입니다. (
기존에 Telnet이라는 서비스를 이용해서 원격의 리눅스 서버에 접속했습니다.
텔넷의 단점
텔넷의 단점은 데이터가 암호화 되지 않는 다는 점이었고, 패킷을 가로채는 패킷 스니핑에 대상이 되었습니다.
대칭키방식
- 하나의 키를 사용해서 암호화, 복호화 하는 방식
비대칭키방식
- 데이터 암호화에 사용하는 공개키(public)
- 데이터 복호화에 사용하는 비밀키(private)(본인만 가지고 있어야 합니다)
- 공개키 + 비밀키 = 키페어(key pair)라고 부릅니다.
- 같은 키페어 끼리만 암호화 복호화가 가능합니다.
SSH를 이용한 암호화 통신
예전 ssh초기 연결방식(비대칭키 교환방식)
- 서버에 SSH를 설치합니다. (서버는 공개키, 개인키) 를 가지고 있습니다.
- 클라이언트도(공개키, 개인키) 를 가지고 있습니다.
- 클라이언트는 SSH 연결을 요청하고, 서버에 연결을 시도합니다.
- 서버는 연결을 받으면, 클라이언트에게 서버의 (공개키) 을 전달합니다.
- 클라이언트는 (공개키)를 받습니다.
- 클라이언트도 서버로 공개키를 보냅니다.
- 서버는 공개키를 받습니다.
- 이후에 공개키로 암호화를 걸고 통신 합니다.
- 암호화된 데이터는 서로의 개인키로 복호화 합니다.
이 방식은 문제가 있습니다.
바로 중간자가 양쪽 공개키를 탈취하고, 내가가진(공개키) 를 양쪽에 전달해버리면?
내가 가진 비밀키를 사용해서 복호화를 할 수 있습니다.
요즘 ssh방식 - (비대칭키 + 대칭키)
- 서버 ssh연결시 서로 공개키를 교환합니다. (여기까지는 이전과 동일 - 비대칭키 방식)
- 디피헬만 알고리즘을 이용해서, 서버, 클라이언트는 동일한 비밀키(세션키)를 생성합니다.
- 이제 서버, 클라이언트는 비밀키(세션키) 둘다 가지고 있습니다
- 비밀키(세션키) 를 사용하여 암호화 전송을 합니다. (대칭키 암호화)
- 단. 여기서 비밀키(세션키)는 개별 세션에 대해 생성되며 더 이상 필요하지 않은 즉시 사라진다.
쉽게 말해 한번더 암호화 한다는 의미입니다.
- 내부적으로 돌아가는 서비스들 확인하기
service service --status-all
-
- apt를 사용해서 ssh서버 설치하기
- 향상된 패키지 관리 도구 apt방식을 활용합니다. (5강에서 확인)
- apt는 인터넷을 통해 원격에 저장된 패키지를 다운로드 받아서 설치해주는 향상된 패키지 관리 도구 입니다.
- 패키지 관리 도구 업데이트
apt-get update
-
- 패키지 찾기
apt search <패키지명>
-
- 패키지 다운로드하기
apt-get install <패키지명>
실행
sudo apt-get update sudo apt-get search openssh sudo apt-get install openssh-server
-
- 가상머신 리눅스의 아이피 확인하기
ip addr
-
- putty를 설치하고 접속하기
HostName란에 접속방법
- 계정명@아이피주소 (ssh 22번포트)
'리눅스' 카테고리의 다른 글
apt로 외부 파일 설치 (웹서버구현) (0) | 2024.07.10 |
---|---|
사용자생성과 소유권, 실행권한 (0) | 2024.07.04 |
리눅스의 파일구조, 기초명령문 (0) | 2024.07.04 |
개발자가 알아야 하는 리눅스명령문 (0) | 2024.07.04 |