Create TOC

레이블이 ssh인 게시물을 표시합니다. 모든 게시물 표시
레이블이 ssh인 게시물을 표시합니다. 모든 게시물 표시

2019년 6월 30일

mosh 설정

mosh는 ssh 를 개선한 원격 터미널이다. UDP 프로토콜 (60000 ~ 61000) 을 사용하며 입/출력 연결을 따로 하기 때문에 ctrl-c 같은 키에 대한 반응성이 좋다.

최초 연결은 ssh 를 사용하며 연결 후 mosh-server 를 실행시키는 구조이다(따라서 접속했을 때만 해당 계정 권한으로 mosh-server 가 실행된다).

설치

Debian Linux

$ sudo apt install mosh

ufw

ufw를 사용하면 방하벽 규칙에 mosh가 사용하는 포트를 추가해줘야 한다.
$ sudo ufw allow mosh

포트를 전부 열기 부담되면 아래와 같이 적당히 열여주면 된다.

$ sudo ufw allow 60000:60010/udp

OS/X

$ brew install mosh

사용 방법

foo 계정으로 bar.com 에 접속하는 방법은 아래와 같다.

$ mosh foo@bar.com

ssh 설정을 변경하는 경우 아래와 같이 옵션을 주거나 미리 ~/.ssh/config 설정을 하면 된다.

$ mosh --ssh="ssh -p xxxx" foo@bar.com

호환성을 위한 추가 설정

vim 설정

mosh로 접속시 vim화면이 깨져보일 수 있다. 이때 vimrc 에 아래 설정을 추가한다.

set notermguicolors

2019년 6월 26일

web proxy server를 경유해서 ssh 접속하기

아래와 같이 web proxy server를 경유해서 ssh server에 접속하는 방법을 적는다.

PC -> Web Proxy Server ----------> nginx(testserver:8888) -> ssh server(testserver:22)

서버 설정

패키지 설치

$ sudo apt install nginx-light libnginx-mod-stream
$ sudo mkdir /etc/nginx/stream-enabled

nginx 설정

/etc/nginx/nginx.conf에 아래와 같은 내용을 추가한다.

stream {
        include /etc/nginx/stream-enabled/*;
}

/etc/nginx/stream-enabled/test.conf 파일을 만든다.

upstream ssh {
        server 127.0.0.1:22;
}

server {
        listen 8888;
        proxy_pass ssh;
}

설정이 바르게 되었는지 확인한다.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

nginx를 다시 시작한다.

$ sudo systemctl restart nginx.service

접속 방법

linux

$ ssh -p 8888 foo@testserver -o "ProxyCommand=nc -X connect -x proxyserver:proxyport %h %p"

~/.ssh/config을 만들어 두는 것이 더 편하다.

Host myfoo
        Hostname testserver
        User foo
        Port 8888
        ProxyCommand    nc -X connect -x proxyserver:proxyport %h %p
$ ssh myfoo

Windows

PuTTY 의 proxy 설정을 이용한다.

2013년 8월 14일

Debian/ssh 접속시 Google Authenticator 적용

Debian Sid에서 ssh 접속시 Google Authenticator를 적용하는 방법을 기술한다.

설치

$ sudo apt-get install libpam-google-authenticator

키 생성

$ google-authenticator

아래와 같은 질문에 y으로 대답하면 화면에 바코드가 출력된다.

Do you want authentication tokens to be time-based (y/n) y

바코드를 iPhone의 Google Authenticator 앱으로 찍어서 등록한다.

그 뒤에 질문들에는 y으로 대답한다.

Do you want me to update your "/사용자명/.google_authenticator" file (y/n) y

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) y

If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y

ssh 설정

/etc/pam.d/sshd 파일에 아래 내용을 추가한다.

auth       required     pam_google_authenticator.so

/etc/ssh/sshd_config 파일의 ChallengeResponseAuthentication 값을 yes로 수정한다.

ChallengeResponseAuthentication yes

ssh 를 재시작한다.

$ sudo /etc/init.d/sshd restart

2008년 11월 20일

rsync over ssh 를 이용한 원격 서버 백업

#!/bin/sh
OPTS="--archive --compress --times --perms --owner --group --links --stats -v -u --delete"
SSHOPT="-e ssh"
FROMDIR="아이디@SSH서버주소:백업할 루트 디렉토리 경로"
TODIR="백업 받을 경로"

rsync $OPTS $SSHOPT $FROMDIR $TODIR

2006년 11월 15일

공인인증서를 이용해서 openssh키 생성하기

공인 인증서를 이용해서 openssh 에서 사용 가능한 rsa 키를 생성하는 방법을 설명한다.

테스트 시스템은 Debian 이다.

  1. 인증서를 "내보내기" 기능을 이용해 저장한다. 저장하면 확장자가 .p12인 파일이 생긴다. 여기서는 mykey.p12 로 내보내었다고 가정한다.
  2. openssl을 이용해서 인증서를 변환한다.
    $ openssl pkcs12 -out id_rsa -in mykey.p12
    Enter Import Password : 인증서 내보내기 할 때 사용한 비밀번호
    MAC verified OK
    Enter PEM pass phrase: 키에 설정할 비밀번호
    Verifying - Enter PEM pass phrase: 위 비밀번호 반복
    
  3. 생성된 id_rsa 를 ~/.ssh 폴더로 이동한다.
    $ mv id_rsa ~/.ssh/
    
  4. 아래와 같은 명령어를 입력해서 permission을 변경한다.
    $ chmod 0600 ~/.ssh/id_rsa
    
  5. 이제 접속하고 싶은 서버의 ~/.ssh/authorized_keys2에 공개키를 등록하면 된다. 공개키는 아래와 같은 명령으로 얻을 수 있다.
    $ ssh-keygen -y -f ~/.ssh/id_rsa
    
  6. 이제부터 ssh를 이용해 접속하면 생성된 id_rsa 를 이용해 접속하게 된다.