SSH 4

SSH known_host 메모

배포 자동화 시스템을 Packer와 Ansible을 이용해서 만드려고 하나씩 살표보는데, Ansible이 SSH 기반이다. SSH로 다른 호스트를 접근하려면, 처음에, 해당 호스트의 FingerPrint를 등록할것인지를 물어보는데, 이로 인해서 Ansible 스크립트를 처음 실행할때, 이 물어보는 프롬프트 때문에, 스크립트가 중간에 멈추거나 또는 입력을 받지 못해서 대상 호스트로 접속이 안될 수 있다. 한번 Finger Print를 등록해놓으면, 다음부터는 물어보지 않기 때문에 문제는 없지만, 이를 해결하기 위해서는 처음에도 물어보지 않도록 미리 등록을 해놓아야 한다. 대략 내용을 보니, Finger Print를 등록하는 프롬프트에서 등록을 하게 되면, 해당 호스트는 ~/.ssh/known_hosts 라..

구글 클라우드 서버의 HTTP 포트를 SSH 로 터널링해서 로컬에서 접속하기

구글 클라우드 서버의 HTTP 포트를 SSH 로 터널링해서 로컬에서 접속하기 조대협 (http://bcho.tistory.com) 구글 클라우드 VM에 서버를 설치한 후 웹을 접근하고자 할때, 설치한 애플리케이션이 ACL (접근 제어) 처리가 안되어 있는 애플리케이션이 있을 수 있다. 특히 관리자 콘솔 같은 경우에 이런 경우가 많은데, 아파치 에어플로우 역시도 설치 후에 웹 서버를 띄우면 포트가 모두 퍼블릭으로 오픈되기 때문에 관리자만 액세스가 가능하도록 ACL 처리를 할 필요가 있다. 이를 위한 방법으로는 몇가지가 있는데 방화벽으로 특정 포트만 허용 하는 방법앞에 nginx나 apache를 넣어서 HTTP BASIC AUTH등 인증 방식을 추가하는 방법Google Cloud Identity Aware ..

구글 클라우드 VM으로 SSH 접속하기

구글 클라우드 VM으로 SSH 접속하기 조대협 (http://bcho.tistory.com) 클라우드에서 VM을 생성하면, 이 VM에 접속하기 위해서 리눅스 VM의 경우 일반적으로 SSH 연결을 사용한다.구글 클라우드에서 SSH를 이용하여 VM에 접속하는 방법을 알아본다. 1. SSH 키페어 생성ssh-keygen 명령어를 이용하여 다음과 같이 RSA 키페어를 생성한다.%ssh-keygen -t rsa -C "구글계정명" 2. 키페어가 생성이 되었으면 *.pub으로 끝나는 이름의 퍼블릭키의 내용(텍스트)를 복사한후, 콘솔창에서 "Compute Engine > Metadata > SSH Keys" 부분에 복사한 텍스트를 붙여 넣어서 키를 등록한다. 3. 키 등록이 끝났으면, 이 키를 이용하여 SSH로 접속..

Fabric을 이용한 간단한 Tomcat deploy

Tomcat war deploy시, 가장 이상적인 방법은 tomcat stop > copy war > start 순서이다.아래는 간단하게 Python 기반의 Fabric을 이용하여, EC2상에서 pem (SSH)를 이용하여, Host들에 deploy하는 과정을 정의함 #fabfile.pyfrom fabric.api import run,env,execute,taskfrom fabric.operations import local,put def tomcat_cluster(): env.user ='root' env.hosts=['host1.server.com','host2.server.com'] # list of server setting env.key_filename='~/pem/pemfile.pem' # p..