SSH 접속

Younghwan Cha·2023년 2월 16일
0

server monitoring

목록 보기
8/11
post-thumbnail

SSH 란?

SSH( Secure Shell )는 원격 호스트에 접속하여 로그인, 원격 명령 실행, 파일 전송 등을 수행하기 위한 인터넷 프로토콜이다.
SSH 프로토콜은 기본적으로 server-client 모델에 기반한다.
따라서, SSH 사용을 위해서는 server 에 SSH 데몬과 client 에 SSH-client 가 설치되어 있어야한다.
SSH 의 경우 22번 포트를 사용하여 연결을 진행한다. 이후 client 에서 SSH 연결을 시도할 경우 다음 두가지 검증을 수행한다.

  1. 접속하려는 서버가 올바른 서버인지 검증
  2. Client 가 해당 서버에 대한 올바른 권한을 갖고있는지에 대한 검증

SSH 작동 원리

SSH 는 대칭키 방식, 비대칭키 방식, 해시 알고리즘과 같은 암호화를 사용하여 client-server 간에 안전한 네트워크 서비스를 제공한다.

대칭키 방식 은 클라이언트-서버 간 전체 연결을 암호화에 사용되며,
비대칭키 방식 은 키 교환, 클라이언트 인증, 서버 인증에 사용되고,
해시 알고리즘 은 패킷의 무결성을 확인하기 위해 사용된다.

ssh 접속은 다음과 같은 4가지 과정을 거친다.

client 는 server 에 원격 접속을 위한 연결을 설정하는 프로세스를 시작

SSH 프로토콜은 기본적(Default)으로 TCP 22번 포트를 사용하여 통신한다.
클라이언트가 서버에 원격 접속하기 위해 서버의 TCP 22번 포트로 SSH 접속 요청을 보내는 것이 SSH 연결의 첫 단계이다.
서버는 클라이언트에게 서버가 지원하는 프로토콜의 버전을 응답으로 보내준다.
클라이언트는 서버가 지원하는 프로토콜의 버전 중 자신과 일치하는 것이 있다면 연결을 지속한다

server 에서 client 에게 public key 를 전달

server 가 client 로 부터 ssh 접속 요청을 받을 경우 자신의 public key 를 client 에게 전달한다.
client 는 server 로부터 전달받은 public key 를 known_hosts 파일에 저장해둔다.( linux: ~/.ssh/known_hosts )

client 와 server 는 여러 parameter 들을 통해 보안 채널을 확립

client 가 server 에 접속

client setting

# ~/.ssh/config

HOST <접속시 사용할 server 이름>
	HOSTNAME <ip> or <hostname>
    USER <user>
    IDENTITYFILE <path to pem file>[ ~/.ssh/id_rsa ]

[ref]
https://www.ssh.com/academy/ssh
https://limvo.tistory.com/21
https://it-eldorado.tistory.com/157

profile
개발 기록

0개의 댓글