SSH
SSH?
SSH는 Secure Sell의 약자로 원격지에 있는 컴퓨터를 안전하게 제어하기 위한 프로토콜 또는 이 프로토콜을 사용하는 프로그램들을 의미한다. 명령어를 통해서 원격에 있는 컴퓨터를 제어할 수 있는 프로토콜...이라고 보면 된다. 예전에는 서로 통신하는 것이 평문으로 통신을 했기 때문에, 보안상의 큰 문제가 있었다. 하지만, SSH가 나옴으로써 굉장히 보안이 되어있는 상태로 통신을 할 수 있게 됨. 원격에서 제어를 받는 쪽 서버 역시 ssh가 설치가 되어있어야 한다.
- 앞에 내가 직접 사용할 수 있는 컴퓨터가 있고... SSH Client ..
- 원격지에 있는 서버 ... SSH Server
SSH Key? - 비밀번호 없이 로그인
- 비밀번호 보다 높은 수준의 보안을 필요로 할 때
- 로그인 없이 자동으로 서버에 접속 할 때
SSH Key는 Public Key(공개키)와 Private Key(비공개키)로 이루어지는데, 이 두 개의 관계를 이해하는 것이 SSH Key를 이해하는데 핵심이다. Publick Key는 서버쪽에 위치하고, Private Key는 로컬에 위치한다.
ssh-keygen 사용하기
SSH 키를 생성하는 것은 ssh-keygen을 통해서 하면 된다. ssh-keygen -t rsa : -t는 어떠한 암호화 방법으로 만들것인가? rsa가 일반적으로 사용하는 암호화 방식이다.
ssh-keygen -t rsa
확인하는 방식은 ls -al /Users/ssh-client/.ssh/ 혹은 $HOME을 치면 됨. 맥에서는 보통 ~/.ssh 에 있음.
id_rsa : private key id_rsa.pub : public key => private key는 굉장히 중요한 파일임. 유출이 되면 절대 안됨. => 반면 public key는 권한이 group이나 other도 사용할 수 있게 함.
접속하려고 하는 서버에 id_rsa.pub을 등록해 놓으면, 나중에 접속을 할 때 내 local의 id_rsa파일과 id_rsa.pub이 일치하면 통과임.
id_rsa.pub을 remote 서버로 전송하기
scp라는 것을 이용해서 파일을 전송할 수 있음 scp ~/.ssh/id_rsa.pub [email protected]:id_rsa.pub net: 뒤에는 저장할 디렉토리의 path임. 적지 않으면 home directory..
서버에 전송이 성공하면... mkdir .ssh chmod 700 .ssh (인증키와 같은 중요한 정보가 있어서.. 소유자만 접속할 수 있도록)
cat id_rsa.pub >> .ssh/authorized_keys 화면에 출력했던 내용을 authorized_keys에 추가함. redirection
append , > overwrite
테스트
ssh id@server_id 로 했을 떄, 접속이 그냥 성공하면 문제 없음
+ 혹시 안된다면?
ssh [email protected] -v 를 쓰면 디버깅..
SSL?
SSL은 Secure Socket Layer의 약자다. 즉, 통신을 하는데 OSI 7 Layer 에서 소켓 레이어에 해당하는 Layer를 Secure하게 만들어주는 것이다. 통신의 주체 사이에 이 소켓을 통해서 데이터를 주고 받게 된다. 바로 이 레이어에 암호화 기술을 넣어서 보내고 받는 데이터가 다 암호화가 되어 있고, 그것을 편하게 구현할 수 있게 만들어 놓은게 SSL이라는 것이다.
vs SSH? SSH는 Secure Shell의 약자이다. Client에서 원격지에 있는 서버로 접속을 할 때 사용한다. 이 때 만약에 clear-text로 서버와 왔다갔다하면 문제가 발생할 수 있다. 접속 단말 프로그램이라고 보면 된다.