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