-
의미와 사용법 SSH카테고리 없음 2021. 8. 5. 19:56
SSH에서 나에게 중요한 것▪ ssh-keygen▪ ssh-copy-id▪ ssh 접속방법 ▪ putty▪ Teraterm▪ etc...▪ ssh 활용되는 장소 SSH란?Secure (보안상의 안전하다.) Shell의 약자로 원격지에 있는 컴퓨터를 안전하게 제어하기 위한 프로토콜, 또는 이 프로토콜을 사용하는 프로그램을 의미한다.
SSH가 나타나기 전에는, Talnet 이나 그 외의 여러가지 방법을 통해서, 원격지에 있는 컴퓨터를 이전부터 제어해 왔다.
종래 유닉스 시스템에 셸로부터 원격 접속하기 위해서 사용하고 있던 Talnet는, 암호화를 하지 않아 어카운트 정보가 탈취될 리스크가 높기 때문에, (ex. 패스워드, 크레디트 카드 정보 등) 여기에 암호화 기능을 추가해, 1995년에 나온 프로토콜이 SSH이다.
SSH 클라이언트와 SSH 서버의 관계로 상호 작용하면서 SSH 서버가 설치된 operating system을 제어한다.클라이언트와 서버 사이에는 강력한 암호화 방법을 통해 연결되어 있기 때문에 데이터를 중간에 가로채도 해석할 수 없는 암호화된 문자만 노출된다.지금까지는 Telnet을 주로 사용했지만, 이를 대체하기 위한 통신 방법이다.
Window는 기본적으로 SSH Client를 제공하지 않는다.그래서, Xshell 와 같은 프로그램을 이용해 원격지에 있는 컴퓨터를 제어한다.→Windows 10 에서는 OpenSSH 를 제공한다.Windows 용 OpenSSH 클라이언트 및 서버를 인스톨 합니다.docs.microsoft.comSSH 클라이언트 리눅스와 Mac과 같은 Unix 계열의 운영체제는 기본적으로 SSH 클라이언트가 설치되어 있기 때문에 SSH를 이용하기 위해 특별한 클라이언트가 필요하지 않다.
그러나, SSH는 Windows OS에는 SSH 클라이언트가 설치되어 있지 않다.SSH 클라이언트를 설치하면 Windows에서 Unix 계열의 OS 를 제어할 수 있다.
대표적인 SSH 클라이언트로는 다음과 같은 것들이 있다.▪Xshell▪PuTTY▪iTerm▪TeraTerm▪SecureCRT▪MobaXtermSSH 는 Unix 계열의 operating system을 원격으로부터 제어하기 위한 방법이다.
그 때문에, 원격지에 있는 Windows OS를 SSH로 제어하는 것은 일반적이지 않다.Windows 에는 클라이언트 OS로서 사용할 수 있을 뿐이다.
유닉스 계열의 운영체제에서는 OpenSSH가 가장 많이 사용된다.OpenSSH는 SSH 클라이언트와 서버를 포함한다.
Mac은 SSH 클라이언트와 서버가 이미 설치되어 있기 때문에, SSH를 이용하기 위해서 특별한 조치는 필요하지 않다.
Mac OS 는 Unix 계열의 operating system이기 때문에, SSH 클라이언트와 서버가 이미 인스톨 되어 있다.특별히 설치하거나 설정할 것은 없다.
▪ Spotlight 로 검색 : terminal
▪ssh:Mac에 설치된 클라이언트를 실행하는 명령
▪ 빠져 나가는 2. Linux에서의 SSH 사용법
3. Windows에서의 SSH 사용법 (PuTTY)
PuTTY : a free SSH and Telnet client Home | FAQ | Feedback | Licence | Updates | Mirrors | Keys | Links | Team Download : Stable · Snapshot | Docs | Changes | Wishlist PuTTY is a free implementation of SSH and Telnet for Windows and Unix platforms , along with an xterm terminal emulator . It is written ... www.chiark.greenend.org.uk
넷사랑 컴퓨터로 만든 SSH Telnet 터미널 에뮬레이션이다.MS 윈도에서 유닉스 계열의 터미널을 사용할 수 있게 해주는 소프트웨어다.
집과 학교에서는 무료로 이용할 수 있고 상업용을 구입해야 한다.
NetSarang Software combines performance , security , and usability for a complete network connectivity experience . www . netsarang . comSSH - KEY
SSH Key ?? 서버에 접속할 때 패스워드 대신 키를 제출하는 방식이다.
SSH 키는 언제 써?• 비밀번호보다 높은 수준의 보안을 필요로 할 때, 로그인 없이 자동으로 서버에 접속할 때,
SSH Key가 동작하는 방식 SSH Key는, 공개키와 비공개키로 이루어지지만, 두 개의 관계를 이해하는 것이 SSH Key를 이해하는데 있어서 핵심이 된다.
키를 생성하면 공개키와 비공개키가 만들어진다.이 중 비공개키는 로컬 머신에, 공개키는 리모트 머신에 위치해야 한다.
SSH 접속을 시도하면, SSH Client가 로컬 머신의 비공개 키와 원격 머신의 비공개 키를 비교해 2개가 일치하는지를 확인한다.
ssh-keygen은 공용과 개인키를 생성한다.ssh-copy-id 는 로컬 호스트의 공개키를 원격 호스트의 authorized_keys 파일에 복사한다.또, 적절한 권한을 원격 호스트의 홈, ~.ssh, ~.sshauthorized_keys 에 부여한다.
ssh - keygen
화면출력 rsa라는 암호화 방식으로 키를 생성한다.
올바르게 입력하면, 다음과 같은 화면 출력이 나온다. 나오지 않으면 또 해야 한다.SSH 키를 저장할 위치를 지정한다.엔터를 누르면 기본 경로에 저장된다.기본 경로는 로그인한 사용자의 홈 디렉토리 아래에 .ssh이다. ($HOME.ssh) SSH Client는, 기본적으로 이 디렉토리에 있는 키를 이용해 인증을 시도한다.
passphrase를 입력한다.passphrase는 일종의 패스워드이며, 비공개키를 입력한 값으로 암호화한다.권장치는 10~30자로 생략 가능하다.생략하면 이 부분이 보안 취약점이 될 수 있으므로 주의한다.자동 로그인을 원할 경우 생략해야 한다.
패스워드를 확인한다. 동일한 값을 입력하면 된다.다음과 같이 출력된다면 키가 생성된 것이 된다.
id_rsaprivate key, 절대로 타인에게 노출되어서는 안 된다.id_rsa.pubpublickey, 접속하려는 원격 기계 authorized_keys에 입력한다.authorized_keys 리모트 머신의 .ssh 디렉토리 아래에 위치하면서 id_rsa.pub 키의 값을 저장한다.(Server에만 있다.)
.ssh 디렉토리는 매우 중요한 보안 정보가 포함된 디렉토리이다.따라서 Permission 설정을 반드시 해야 하는데 아래와 같은 설정을 권장한다.이하의 명령을 차례차례 실행한다.
퍼미션(Permission)이란? 특정한 파일이나 디렉터리에 대하여 읽기, 기록하기, 삭제하기 등의 권한을 설정해 놓은 것으로 다중 사용자 OS에서의 파일 접근 권한과 보호 등을 위해 반드시 필요합니다. 퍼 .. securityspecialist.tistory.com
다음을 입력하고 엔터를 누른다.
입력하면 공개키가 나오는데, 이 공개키를 서버(접속을 허용하는 컴퓨터)에 보내야 한다.
나의 상황에서 생각하면, authorized_keys는 gitLab이라고 생각하면 된다.Client의 공개키가 authorized_keys에 있다.
클라이언트에서 SCP는 파일을 송신하는 프로그램
서버에서 를 입력하면 authorized_keys 파일이 생긴다.
ssh - copy - id
ssh 연결 비밀번호 없이 연결하시면 성공
id_rsa 파일을 $HOME.sshid_rsa에 만들지 않고 다른 디렉토리에 만들었다면 - i
접속하는 과정에서 많은 오류 상황이 있을 수 있다.이럴 때는 ssh 옵션 중에 v 를 이용하면 어디서 문제가 발생했는지 추적하는 데 도움이 된다.자세한 정보는 -vv, -vv를 통해 볼 수 있다.6. SSH 터널링 - 방화벽
방화벽이란? 보통 회사 내에서 회사 밖(아웃바운드: outbound)의 통신이나 회사 밖에서 회사 내(인바운드: inbound)로의 통신을 허가 또는 차단 설정하는 장비를 말한다.
터널링은 간단히 네트워크상에서 터널링이라고 부르면 Client PC와 Server PC간의 접속을 암호화 기능을 통해서 외부에 누군가가 볼 수 없도록 하는 기능을 터널링이라고 하는데 실제 터널처럼 외부에서 이 접속을 보호하기 위해서 터널링이라고 부릅니다.
SSH 터널링 SSH Tunneling 혹은 SSH Port Forwarding이라고도 부른다.SSH가 제공하는 인증, 암호화, 완전성, 압축기능에 의해서 Client와 서버간의 터널을 만드는 방법이다.
상황 데이터베이스에 접속하려고 한다.데이터베이스는 Port 3306 port를 사용한다.그러나 데이터베이스가 설치된 리눅스는 22번 포트만 개방돼 있다.
해결책 SSH 터널링을 이용해 SSH 클라이언트 컴퓨터의 9000번 포트에 접속하면, SSH 서버에서는 이 접속을 3306 포트로 포워딩 해 준다.방화벽에 의해 차단되지 않은 22번 포트를 이용해 3306 포트를 사용할 수 있게 된 것이다.
포트포워딩 종류 ▪ 로컬포워딩 일반적으로 사용되는 방식으로 SSH Client가 설치된 로컬머신의 포트를 지정하면 지정된 로컬머신의 포트에 들어가는 접속을 미리 정의된 SSH Server가 설치된 리모트머신으로 접속시킨 후 미리 정의된 리모트머신의 포트로 포워딩을 해준다.
회사에서 하는 거 집에서 하고 싶을 때 이 방법은 잡아라!!! 잘못된 곳에 랜섬웨어도 걸릴 수 있고 회사 보안 때문에 못해!!! 아니면 VPN(터널링의 일종)이나 Team Viewer로 가능하지만 잡아라!일은 회사에서만 하는 걸로...!
안녕하세요 메탈로그입니다 회사 업무가 많다는 핑계로 포스팅을 좀 소홀히 해서 오랜만에 블로그 포스팅을 작성합니다. 이번 포스팅에서는 SSH 터널링을 통해 방화벽을 우회하는 방법에 대해 알아보기로 했습니다.metalog.tistory.com 과거에는 집에 보통 컴퓨터를 한대만 사용해서 스마트폰이 없었기 때문에 인터넷을 설치해도 모뎀만 있으면 컴퓨터에 인터넷을 연결할 수 있었습니다. 요즘들어가족구성원한명에게컴퓨터를사용하거나스마트폰을이용한인터넷을위해서유무선공유기가하나씩있을것입니다. 단순히 인터넷을 사용하는 것 뿐이라면 공유기는 아무런 문제도 일으키지 않아요. 하지만 제가 어떤 서비스나 서버를 구축하면 공유기가 큰 문제가 됩니다. 왜 이런 일이 일어나는지 알아보고 이를 해결하기 위해 포트포워딩을 어떻게 적용해야 하는지 lamanus.kr 참고▪ 생활코딩▪ 나무위키