[질문] ssh 터널링

auditory의 이미지

ssh 터널링을 위해서 아래와 같이 접속을 했습니다.

ssh -f -N -R 2222:localhost:22 -R 2224:localhost:80 user_id@server

그런데 실제로 터널링이 되다가 안되다가 합니다.

안되는 경우에는 server에 들어가서

$ ssh -p 2222 -vv localhost
OpenSSH_5.1p1 Debian-5ubuntu1, OpenSSL 0.9.8g 19 Oct 2007
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to localhost [127.0.0.1] port 2222.
debug1: Connection established.
debug1: identity file /home/user_id/.ssh/identity type -1
debug1: identity file /home/user_id/.ssh/id_rsa type -1
debug1: identity file /home/user_id/.ssh/id_dsa type -1

해보면 아무런 응답이 없이 계속 대기 중에 있습니다.
계속해서 오래놔두면

ssh_exchange_identification: Connection closed by remote host

라는 에러가나오고 이후부터는 바로
ssh: connect to host localhost port 2222: Connection refused

가 됩니다.

-f -N 옵션을 주지 않았을때는 안정적으로 잘 됐던거 같은데..
crontab에 넣으려고 -f -N 옵션을 주고나서부터 잘 안되는거 같습니다.

계속 안되면 이 옵션없이 해보겠는데, 처음 몇번은 잘 됩니다.
안될때도 netstat으로 보면 연결은 유지되어있고요..

문제의 원인이 뭔지 찾아볼수 있을까요?

auditory의 이미지


이 문제의 원인을 찾을 수가 없다면,

그렇다면 ssh 터널링을 항상 유지할 수 있는 좋은 방법이 어떤게 있을까요?

실제 터미널을 열고 -f -N 옵션없이 로그인한후

while; sleep; date 로 접속을 유지하도록 하면 문제없이 잘 됩니다...

가끔 네트웍이 끊기는 경우 (rebooting등으로) 접속을 유지하고자 crontab에 넣어두고 싶은데요..

좋은 방법이 없을까요?

planetarium의 이미지

추가 질문은 기존 질문 http://kldp.org/node/110397 에 댓글로 달아주세요. 아니면 기존 질문에 완료 표시라도 해주시는게 기본 매너인것 같습니다...
열심히 답변 달아놨는데 확인해놓고 감사표시도 전혀 없이 새 글로 추가 질문을 하셔서 까칠해진건 딱히 아닙니다.