반응형
반응형
반응형

ssh user@ip
반응형
반응형

Local Port Forwarding : Client to Server Port 포워딩 (클라이언트의 특정포트를 서버로)
Remore Port Forwarding : Server to Client 포워딩 (서버의 특정포트는 클라이언트로)



http://kanie.lovlog.net/1500862 에서 발췌..

SSH 터널링이란 - 특정한 포트로 들어오는 IP 패킷을 SSH 접속을 이용해 다른 컴퓨터로 중계해 주는 프로토콜을 가리킵니다. SSH 터널링을 이용하면 방화벽이나 사설망 안에 물려 있어 외부에서 접속이 불가능한 PC에 접속하는 것이 가능합니다.

다음과 같은 시나리오를 예로 들어 보겠습니다.

직장의 사설망 내부에 작업용으로 사용하는 리눅스 PC가 있습니다. 외부에 있는 윈도우 컴퓨터에서 putty로 작업용 PC에 접속하고 싶습니다. 이때 사설망 외부에 SSH 서버가 있다면 터널링을 이용해 작업용 리눅스에 접속할 수 있습니다.

세 대의 컴퓨터가 각각 다음과 같은 이름을 가졌다고 가정합시다.

office_linux_pc : 사설망 내부에서 사용하는 linux pc. 사설 IP는 192.168.0.101 이라고 합시다.
ssh_server : 사설망 외부의 SSH 서버. IP는 147.46.101.102 이고, 계정 이름은 kanie라고 합시다. (도메인 이름이 있다면 ip 대신 도메인 이름을 사용해도 됩니다.)
home_windows_pc : 외부에 있는 윈도우 컴퓨터. 인터넷에 접속만 가능하다면 IP는 무관합니다.

필요한 프로그램은 다음과 같습니다.
office_linux_pc : 이 컴퓨터에 SSH로 접속하고 싶은 것이니만큼 SSH 서버가 필요하겠죠. HTTP로 접속하고 싶다면 역시 HTTP 서버가 필요합니다. 서버가 설치되어 있다면 루트 권한이 필요하지는 않습니다.
ssh_server : SSH 서버가 필요합니다. root 권한을 가질 필요는 없습니다.
home_windows_pc : 윈도우용 SSH 클라이언트인 putty를 설치합시다. putty와 같이 따라오는 윈도우 커맨드라인용 ssh 클라이언트인 plink도 필요합니다.

office_linux_pc에서 ssh_server로 SSH 링크를 엽니다. 147.46.101.102 서버의 3030번 포트로 들어오는 모든 접속을 localhost(이 경우 office_linux_pc가 되겠죠)의 22번 포트로 우회시키는 명령입니다. 22번 대신 80번 포트를 넣으면 외부에서 http 서버에 접속할 수 있습니다.

ssh -R 3030:localhost:22 kanie@147.46.101.102

패스워드를 물어보면 입력하고 접속하면 됩니다.

이제 office_linux_pc를 켜놓고 집으로 갑시다.

home_windows_pc에서 cmd로 콘솔을 열어 다음과 같이 입력합시다. 이번엔 localhost(home_windows_pc)의 4040번 포트로 들어오는 모든 접속을 147.46.101.102 서버의 3030번 포트로 우회시키는 명령입니다.

plink -L 4040:localhost:3030 kanie@147.46.101.102

이제 putty로 localhost:4040 포트에 접속합시다.



office_linux_pc의 ID와 password를 입력하고 접속하면 됩니다.




http://www.zxcasd.pe.kr/tt/entry/ssh-%ED%84%B0%EB%84%90%EB%A7%81 에서 발췌..

ssh 터널링은 공유기나 방화벽 내부의 pc에 접근 할 수 있도록 해준다.

환경
office : 방화벽 안에 있는 피씨 또는 공유기를 사용하는 피씨(192.168.x.x) 처럼 가상 IP를 사용하고 있다.

home : office의 공유기나 방화벽의 밖에 있다.

server : 포워딩 해줄 서버로, office와 home에서 모두 접근할 수 있다.

반응형

'OS > Linux' 카테고리의 다른 글

[link] ln -s  (0) 2010.01.22
ssh 로그인  (0) 2009.12.16
[솔라리스] tar @LongLink 메시지 발생시.  (0) 2009.11.11
서버간 trust 설정. scp 사용.  (0) 2009.10.20
[솔라리스] snmp 설치  (0) 2009.09.14
반응형

Server_B가 Server_A를 trust하도록 설정하면, Server_A 에서 Server_B로의 ssh, scp
등에 대해 패스워드 입력없이 진행 가능합니다.
Server_B와 Server_A 간에 양방향으로 trust관계를 성립하려면,
아래 Server_B trust Server_A configuration을 양쪽서버 두에서 작업하시면 됩니다.

* Server_B trust Server_A configuration

1. Server_B : /etc/ssh/sshd_config 주석제거
--------------------------------------------------------------------------------
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

PasswordAuthentication yes
--------------------------------------------------------------------------------

2. Server_B : sshd 재시작
# service sshd restart

3. Server_A : rsa key 생성
# /usr/bin/ssh-keygen -t rsa
- 키가 저장될 곳과 이름을 물어 오는데 디폴트로 그냥 엔터를 치고 넘어가면, 인증키 암호를 물어온다. 원하는 암호를 두번 입력해주면 키가 생성된다. (그냥 엔터를 치면 된다. 이것은 ssh 접속시 암호를 입력하지 않아도 그냥 접속이 되므로 편리할수는 있으나, 만약 당신의 인증키가 어떠한 경로로든 유출되었을 경우를 생각 해보면 피해야 할 것이다)

4. Server_A : Server_B로 rsa key 복사
# ssh user@server_B "mkdir ~/.ssh; chmod 0700 ~./ssh"
# scp ~/.ssh/id_rsa.pub user@server_B:~/.ssh/authorized_keys

5
. 테스트
 - Server_A 에서 ssh를 통해 Server_B로 접속
# ssh user@Server_B


반응형

+ Recent posts