ssh란?
시큐어 셀(Secure SHell, SSH)는 네트워크 상의 다른 컴퓨터에 로그인 및 원격 시스템을 가능하게 하는 프로토콜이다.
기존의 유닉스 시스템 쉘에 원격 접속하기 위해 사용하던 텔넷은 암호화가 이루어지지 않아 계정 정보가 탈취될 위험이 높으므로, 여기에 암호화 기능을 추가하여 나온 프로토콜이다.
(SSH는 암호화 기법을 사용하기 때문에, 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보인다)
여기서 전에 사용하던 Telnet은 보안적으로 매우 치명적인 결함이 있다.
SSH 프로토콜을 사용했을 때 문자열을 보게 되면 식별할 수 없는 내용으로 패킷이 보내집니다.
암호화된 통신을 가능하게 하여 보안성을 향상시킬 수 있다.
==> 간단히 말해, 원격 컴퓨터끼리 안정하게 통신하기 위한 프로토콜입니다.
ssh는 어떤 방식으로 암호화를 진행하나요?
Private Key & Public Key
SSH는 한 쌍의 Key를 통해 접속하려는 컴퓨터와 인증 과정을 거치게 됩니다.
이 한쌍의 key는 위와 같이 2개(private, public)입니다.
SSH가 동작하는 순서는 이렇다.

(SSH Server)는 *daemon프로그램이 항상 돌면서 (SSH Client)로부터의 접속을 기다리고 있는다.
그다음 클라이언트가 접속을 시도하면 다음으로 보안연결을 수립한다.
SSH 연결은 양 측간의 인증은 클라이언트와 서버 간에 상호 신뢰를 구축하기 위해 이루어집니다.
1. 연결 이전, 서버와 클라이언트는 서로의 공개키(Public Key)를 알고 있다.
2. 클라이언트가 서버에 연결 요청을 보내면, 우선 서로를 인증(Authentication)하는 절차를 거친다.
1) 서버인증: 클라이언트는 난수를 하나 생성하여, 서버의 공개 키로 암호화하여 서버에게 전송하고,
난수의 해쉬(hash)를 저장해 둔다. 서버는 전송받은 공개키를 자신의 private key로 복호화를 진행한다.
복호화된 난수의 해쉬를 계산해 클라이언트에게 전송. 클라이언트는 전송받은 난수의 해쉬를 저장된
해쉬와 비교하여 서버를 인증한다.
2) 클라이언트 인증: 위 서버 인증 과정에서 서로의 역할을 바꿔 동일하게 진행한다.
서버 난수생성 -> 공개키로 클라이언트에게 전송 -> 난수의 해쉬를 저장
-> 클라이언트는 자신의 private key로 복호화를 진행 -> 복호화된 난수의 해쉬를 서버에게 전달
-> 해쉬값끼리 비교 -> 인증완료
3. 인증이 끝나면, 세션 키(Seesion Key)를 교환합니다.
대칭 키는 데이터를 암호화하고 복호화하는 데 사용되는 동일한 키입니다.
대칭 키 암호화는 비대칭 키(Public Key & private key) 보다 훨씬 빠르기 때문에 성능상의 이점이 있다.
여기서 daemon은
- daemon: 부팅이 끝나면 background process로 시작되어 계속 실행되는 프로그램이다.
예를 들어, 네트워크 요청, 하드웨어 동작, 여타 프로그램에 반응하는 기능을 담당한다.
여기서 OpenSSH의 경우,
서버의 공개 키는 클라이언트의 ~/.ssh/known_hosts 파일에,
클라이언트의 공개 키는 서버의 ~/.ssh/authorized_keys 파일에 저장된다.


라즈베리파이 환경설정
Raspberry Pi
From industries large and small, to the kitchen table tinkerer, to the classroom coder, we make computing accessible and affordable for everybody.
www.raspberrypi.com
라즈베리파이를 사용하게 되면 일단 라즈베리파이 os를 다운로드하여야 한다.
따라서 Raspberry Pi Imaher를 다운로드한다.
다운로드한 후, 설치 전에 SSH가 접속가능하도록 설정해야 한다.

vs code에서 SSH 환경설정
- Remote - SSH 설치
VS code를 실행한 다음, 화면 왼쪽의 Extensions 아이콘을 클릭
검색창에 remote-ssh를 입력한 후 install 하여 설치

화면 왼쪽아래 초록색 아이콘 "open a remote window"아이콘 클릭
1. connect to Host.. 를 클릭
2. 라즈베리파이의 사용자 이름@ip주소 대입 예) pi@192.168.0.5
==> vs code환경세팅 완료

'Project > Caston Design' 카테고리의 다른 글
[순서도] 시스템 동작 (0) | 2023.09.02 |
---|---|
[MQTT] 통신선로 구축하기 (0) | 2023.09.01 |
[image processing] QR코드인식 (0) | 2023.09.01 |
[초안설계] 졸업작품 system design (0) | 2023.09.01 |
ssh란?
시큐어 셀(Secure SHell, SSH)는 네트워크 상의 다른 컴퓨터에 로그인 및 원격 시스템을 가능하게 하는 프로토콜이다.
기존의 유닉스 시스템 쉘에 원격 접속하기 위해 사용하던 텔넷은 암호화가 이루어지지 않아 계정 정보가 탈취될 위험이 높으므로, 여기에 암호화 기능을 추가하여 나온 프로토콜이다.
(SSH는 암호화 기법을 사용하기 때문에, 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보인다)
여기서 전에 사용하던 Telnet은 보안적으로 매우 치명적인 결함이 있다.
SSH 프로토콜을 사용했을 때 문자열을 보게 되면 식별할 수 없는 내용으로 패킷이 보내집니다.
암호화된 통신을 가능하게 하여 보안성을 향상시킬 수 있다.
==> 간단히 말해, 원격 컴퓨터끼리 안정하게 통신하기 위한 프로토콜입니다.
ssh는 어떤 방식으로 암호화를 진행하나요?
Private Key & Public Key
SSH는 한 쌍의 Key를 통해 접속하려는 컴퓨터와 인증 과정을 거치게 됩니다.
이 한쌍의 key는 위와 같이 2개(private, public)입니다.
SSH가 동작하는 순서는 이렇다.

(SSH Server)는 *daemon프로그램이 항상 돌면서 (SSH Client)로부터의 접속을 기다리고 있는다.
그다음 클라이언트가 접속을 시도하면 다음으로 보안연결을 수립한다.
SSH 연결은 양 측간의 인증은 클라이언트와 서버 간에 상호 신뢰를 구축하기 위해 이루어집니다.
1. 연결 이전, 서버와 클라이언트는 서로의 공개키(Public Key)를 알고 있다.
2. 클라이언트가 서버에 연결 요청을 보내면, 우선 서로를 인증(Authentication)하는 절차를 거친다.
1) 서버인증: 클라이언트는 난수를 하나 생성하여, 서버의 공개 키로 암호화하여 서버에게 전송하고,
난수의 해쉬(hash)를 저장해 둔다. 서버는 전송받은 공개키를 자신의 private key로 복호화를 진행한다.
복호화된 난수의 해쉬를 계산해 클라이언트에게 전송. 클라이언트는 전송받은 난수의 해쉬를 저장된
해쉬와 비교하여 서버를 인증한다.
2) 클라이언트 인증: 위 서버 인증 과정에서 서로의 역할을 바꿔 동일하게 진행한다.
서버 난수생성 -> 공개키로 클라이언트에게 전송 -> 난수의 해쉬를 저장
-> 클라이언트는 자신의 private key로 복호화를 진행 -> 복호화된 난수의 해쉬를 서버에게 전달
-> 해쉬값끼리 비교 -> 인증완료
3. 인증이 끝나면, 세션 키(Seesion Key)를 교환합니다.
대칭 키는 데이터를 암호화하고 복호화하는 데 사용되는 동일한 키입니다.
대칭 키 암호화는 비대칭 키(Public Key & private key) 보다 훨씬 빠르기 때문에 성능상의 이점이 있다.
여기서 daemon은
- daemon: 부팅이 끝나면 background process로 시작되어 계속 실행되는 프로그램이다.
예를 들어, 네트워크 요청, 하드웨어 동작, 여타 프로그램에 반응하는 기능을 담당한다.
여기서 OpenSSH의 경우,
서버의 공개 키는 클라이언트의 ~/.ssh/known_hosts 파일에,
클라이언트의 공개 키는 서버의 ~/.ssh/authorized_keys 파일에 저장된다.


라즈베리파이 환경설정
Raspberry Pi
From industries large and small, to the kitchen table tinkerer, to the classroom coder, we make computing accessible and affordable for everybody.
www.raspberrypi.com
라즈베리파이를 사용하게 되면 일단 라즈베리파이 os를 다운로드하여야 한다.
따라서 Raspberry Pi Imaher를 다운로드한다.
다운로드한 후, 설치 전에 SSH가 접속가능하도록 설정해야 한다.

vs code에서 SSH 환경설정
- Remote - SSH 설치
VS code를 실행한 다음, 화면 왼쪽의 Extensions 아이콘을 클릭
검색창에 remote-ssh를 입력한 후 install 하여 설치

화면 왼쪽아래 초록색 아이콘 "open a remote window"아이콘 클릭
1. connect to Host.. 를 클릭
2. 라즈베리파이의 사용자 이름@ip주소 대입 예) pi@192.168.0.5
==> vs code환경세팅 완료

'Project > Caston Design' 카테고리의 다른 글
[순서도] 시스템 동작 (0) | 2023.09.02 |
---|---|
[MQTT] 통신선로 구축하기 (0) | 2023.09.01 |
[image processing] QR코드인식 (0) | 2023.09.01 |
[초안설계] 졸업작품 system design (0) | 2023.09.01 |