SSH
Secure SHell, 22번 포트를 사용
네트워크를 이용하여 원격으로 접속하는 서비스
공개키 암호 방식으로 암호화된 데이터 송수신
원격 접속 대상 linux host에 ssh daemon process가 동작 중이어야 한다
원격 접속 클라이언트는 ssh 클라이언트 프로그램을 통해 접속
windows - putty, xshell등
linux/Mac OS - ssh명령
별도의 공개키를 생성하여 client에 제공하고 접속하는 방식으로 사용할 수 있음
public cloud에서 제공하는 가상 컴퓨터 서비스
lac(코드기반 인프라 구축)를 이용한 imfrastructure 관리시에도 많이 사용
ssh-keygen - 개인키/공개키 생성 명령
가상 pc환경에서 ssh 접속 환경 구축 방법에 대해 설명해보겠다
(
우분투 설정 들어가서 네트워크 -> 고급 -> 포트포워딩 추가하기
-> 이름 원하는걸로 바꾸고 호스트 포트와 게스트 포트 22번으로 바꾸기!!
-> 게스트IP는 virtual box안에서 도는 사설IP다!!
호스트 IP를 지정하지 않았으면 루프백 (네트워크를 나갔다가 들어오는거! )IP이다 -> 127.0.0.1!!
)
별도의 네트워크 구성시 유리(가상 pc네트워크 구성) ->
직접 전부 구성하는거! ->
virtural Box의 도구에 서 네트워크 들어가서 설치 -> 실습 안했음
(
어댑터 추가( RAM 카드 하나 더 꼽는거라고 생각하면 편함!) ->
네트워크를 호스트 전용 어댑터로 설정!->
-> 가상환경에서만 네트워크 카드를 쓰겠다는 뜻
->이건 IP를 알아야 해서 부팅해야한다!
-> cent OS 들어가서 ip addr 치기
원래는 2: enpOs3만 있어야하는데 우리가 추가해서 3. enpOs8이 추가됨!
-> 만약 IP 찾아서 putty에 입력했는데 아무것도 안뜨면 이건 연결 안된거!
세팅에서 두번째 이더넷도 on으로 바꾸기! -> ip addr 치고 3. enpOs8 여기에 ip가 기다리면 나옴
램카드를 설치했다 -> IP가 기본이 루프백이 아니다 -> 서버 접속하려면 서버 ip를 쓰는게 원칙 -> 실제 서버 IP에 직접 접속하는 방식 할거!
스냅 개념
Ubuntu 에 새로 도입한 패키지 형식으로 샌드박스(완전히 격리된 형테) 형태 패키지
패키지를 만들때 프로그램이 사용하는 모든 라이브러리를 패키지 안에 포함
스냅 장점
개발자가 다른 패키지나 라이브러리 의존성에 대하여 고려하지 않고 개발
기존 시스템과 격리되어 실행하는 샌드박스 형식으로 보안 강화
스냅 단점
패키지 용량이 크다
스냅 명령
스냅이 별도로 설치 되지 않은 경우 설치 후 사용
sudo apt-get install snap
snap [옵션] 명령
install 스냅명 - 지정한 스냅 설치
list - 설치한 스냅 목록 출력
remove 스냅명 - 스냅 삭제 - sudo 필요
info 스냅명 - 지정한 스냅 상세 정보 출력
find 스냅명 - 지정한 스냅 검색
snap find hello-world
sudo snap install hello-world
snap list
hello-world -> Hello World!
snap info
tar 명령
tar 기능 [옵션] <아카이브 파일> <아카이브 대상>
c - 새로운 tar file내영생성
t - tar 파일 내용 출력
x - tar 파일을 원본 형태로 추출
r- 새로운 파일 추가
f - 아가이브 파일 추가
-j - bz2 형식으로 압축 또는 해제
-z - gz형식으로 압축또는 해제
tar cvf <.tar><아카이브대상> -> 아카이브 파일 생성
tar xvf <.tar><아카이브 대상> -> 파일 내용 확인
리눅스 압축명령은 파일 아카이브를 수행하지 않고 압축만 수행
gzip/gunzip 명령 -> 이거 많이 씀! -> 확장자 .gz임
gzip [옵션] <파일 명>
-ㅣ - 압축 파일 정보 확인
-r - 하위 디렉토리로 이동하여 파일 압축
-v - 압축 정보 화면 출력
-9 - 최대한 압축
gunzip <파일명> - 압축해제
bzip2/bunzip2 명령
압축 파일 확장자 -> bz2
-l : 압축 파일 정보 확인
-best: 최대한 압축
-d: 파일 압축 해제
bunzip2<압축파일명> - 압축해제
zip/unzip 명령
zip 파일 명 -> 압축 (zip cron.out.zip cron.out)
unzip 파일명 -> 압축해제
네트워크 명령
네트워크 관련 명령으로 Debian 계열과 Ubuntu 계열, Redhat계열 공통명령과 같은 기능을 하지만
다른 패키지를 통해 동작하는 명령이 있다.
ping [옵션] <호스트 IP 또는 domain>
-c 횟수 - 횟수만큼 패킷 송수신
ICMP 기반 명령으로 해당 호스트가 보안 문제 때문에 응답을 하지 않는 경우가 이삳
ubuntu - trace route 패키지 - 설치 해야함
centos - trace path 패키지 - 설치 해야함
trace route [옵션]<호스트>
-n: 주소를 ip address로 표시
-m (maxtti) 패킷 최대 TTL (hops랑 같다 - 최대 몇번까지 다시 보낼수 있는지)설정
호스트 ip주소/도메인명 검색
DNS에 해당 host 에 대한 ip 주소 /도메인명 검색 요청 명령
- /etc/resolv.conf - 파일에 검색 요청할 dns 정보 기록
host [옵션] <domain or Ip address>
-v -상세정보 표시
ssh [옵션] <[사용자명]@<호스트명>>
-I : <공개키 파일 경로 및 파일명> 공개키 파일 (아이)
-l user - 원격 호스트에 접속할 사용자명
exit 하면 연결 종료
ssh worker@127.0.0,1 -> 이건 패스워드만
ssh <host IP> -> 이건 id와 패스워드 입력해줘야함
공개키 / 개인키 생성 명령
ssh-keygen 누르면 됨 -> 그럼 위치 어디에 할건지 물어봄-> 이게 개인키 넣는곳
-> 비밀구조문구 할건지 물어봄 -> 이걸로 암호를 만든다 ->
사용자 홈 디렉토리에 공개키와 개인키 저장
개인키 - /.ssh/id_rsa
공개키 - (/.ssh/id_rsa.pub) 공개키의 permission은 소유자만 읽기 쓰기 부여
chmod 600 id_rsa.pub
cat ~/.ssh/known_hosts 는
ssh -I ~/.ssh/id_rsa.pub worker@127.0.0.1
인터넷을 이용하여 특정 사이트 로부터 데이터 다운로드 동작 수행하는 웹 브라우저 기능 명령
wget [옵션] URL - 파일로 바로 저장!
-b 백그라운드로 다운로드
-r 재귀적 다운로드
-c 이어받기 다운로드
curl [옵션] URL - 애는 결과가 바로 나옴!!
설치 필요 (sudo snap install curl, sudo apt install curl)
-o: download결과를 url에서 가져온 파일명으로 저장
-o file: 다운로드 결과를 파일로 저장
ip [옵션] address [내부 명령]
-s 상세 정보
-f family - 네트워크 주소 종류 family
-r 호스트 명 표시
내부 명령
show - device 주소 표기
add addr - device 주소 추가
del addr - device 주소 삭제
flush dev - device 주소 일괄 삭제
ifconfig 명령 - 향후 삭제 대상 명령
ubuntu에서 사용을 원하면 패키지 설치
sudo apt install net-tools
인터넷 경로(라우팅) 설정
ip route [내부명령어]
route [옵션][내부 명령어]
네트워크 소켓 정보 및 접속 상환 표시
ss [ 옵션 ]
ip [ 옵션 ] link [ 내부 명령 ]
netstat [ 옵션 ]
- I 네트워크 인터페이스 접속
- r 라우팅 테이블 표시
- s 프로토콜 통계 정보
- l - 접속 대기 중인 소켓만 표시(엘)
-t - TCP 소켓정보 표시
-n - IP address 형식으로 출력
압축한다고 계속 압축해도 줄지는 않는다!!!
압축은 반복하는걸 줄이는 걸 말한다!
네이버 같은곳은 하나의 도메인 이지만 여러개의 서버를 운영한다!!
도메인은 공신력있는 단체에서 사용을 허락해주는거 -> 일정 비용을 주면서 (생각보다 적음)
가비아는 대행 서비스 이다
sudo systemctl list-units --state=enabled
sudo systemctl list-units --state=failed
sudo systemctl list-units --type=service --state=running
-> 문제를 풀면서 느낀점 :
sudo systemctl list-units로 모든 unit 파일을 보고 뒤에서 필터링을 어떻게 할지 적어주는게 중요하다
sudo apt-get update - 이게 설치전 매번 해야하는 것
sudo apt-get upgrade
sudo apt-get install 패키지
sudo apt-get --reinstall install 패키지-> 패키지 재설치
sudo apt-chache search 패키지 이름
디스크 부분부터 이해 안되는 부분들이 많으니까 실습 자료 찾아보면서 한번씩 해보고 그 전내용들이랑 이해하려고 노력해봐야겠다.