일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- PYTHON
- 장고
- Algorithm
- web
- django rest framework
- MAC
- DRF
- javascript
- CSS
- HTML
- django widget
- 알고리즘 문제
- AWS
- API
- 알고리즘 연습
- es6
- c++
- Git
- 백준
- java
- form
- Baekjoon
- django ORM
- 파이썬
- react
- Django
- 파이썬 알고리즘
- js
- 알고리즘 풀이
- 알고리즘
- Today
- Total
수학과의 좌충우돌 프로그래밍
Secure Shell Protocol, SSH 란? 본문
머신러닝을 공부하면서 연구실로 부터 GPU 가 있는 서버를 받아 ssh 로 접속을 하여 사용하고 있습니다. 구글링 하면서 접속하는 방법은 찾아서 문제없이 하고 있지만 정작 ssh 가 뭔지도 명확하지 않으니 서버에서 문제가 발생했을 때 발만 동동 구르고 있습니다. 그래서 ssh 에 대해서 간략하게나마 공부하고 정리해보았습니다.
ssh란?
제목에서 부터 할 수 있듯이 Secure Shell Protocol
의 줄임말로서 네트워크 프로토콜 중 하나 입니다. HTTP
에 대해 알아보면서 프로토콜은 컴퓨터와 컴퓨터가 통신하기 위한 규약인 걸 알았으니 ssh
도 그 중 하나입니다. 다만 특별한 점은 Secure
라는 이름에서도 알 수 있듯이 보안을 강조한 안전한 프로토콜입니다. 기존의 telnet, RSH, rlogin 등의 보안문제를 개선하기 위해서 나왔으며 통신이 노출된다 하더라도 이미 암호화 되어 있기 때문에 문제가 없습니다.
ssh client 와 server
ssh 에서도 client와 server의 개념이 적용됩니다. 이를 알아보기 전에 우선 우리 주변을 살펴볼까요? 집에서 데스크 탑으로 리눅스 운영체제를 사용하는 경우는 거의 없습니다. 저도 한 번도 본 적이 없네요. 같은 유닉스 기반은 macOS 가 종종 있긴 하지만 이도 리눅스는 아닙니다. 하지만 리눅스는 굉장히 각광 받고 있는 운영체제죠. 그 이유는 바로 서버 시장에서 독보적인 점유율을 보이고 있기 때문입니다.
서버는 방금 말한대로 주로 리눅스 기반으로 인터넷으로 제어되는 컴퓨터를 말합니다. 이도 하나의 컴퓨터인거죠. 반대 개념인 클라이언트는 개발자, 사용자가 현재 사용중인 데스크탑이나 노트북을 말합니다. 이제 클라이언트는 서버를 원격제어 해야하는데 이 때 사용하는 것이 바로 ssh
입니다.
ssh 를 통해 제어하기 위해서는 또 ssh server
와 ssh client
가 필요합니다. 이는 별도의 설치가 필요한데 그 과정은 다음에 알아보도록 하겠습니다. 사용자가 ssh client
에서 명령어를 입력하면 클라이언트 컴퓨터를 제어하는 것이 아닌 서버 컴퓨터를 제어하게 됩니다.. 정확히는 ssh client
는 ssh server
에게 명령을, ssh server
는 서버 컴퓨터에게 명령을 내리면 서버 컴퓨터는 명령의 결과를 ssh server
에게, 다시 ssh server
는 결과를 ssh client
에게 보여주는 것입니다.
ssh 로 서버 접속
일반적으로 ssh 를 통해 서버에 접속하는 방법은 다음과 같습니다.
ssh username@hostname
username
에는 사용자의 계정을, hostname
에는 ip 주소 혹은 도메인을 기재해주면 됩니다. 이럴 경우, 기본적으로 22번 포트를 사용하게 됩니다.
원하는 포트 번호가 있을 경우에는 -p
로서 포트 번호를 지정해줄 수 있습니다.
ssh -p portnumber username@hostname