리눅서당에 남기는 첫글이네요! 안녕하세요! 반갑습니다!
기존 ssh는 한번 연결이 끊어지면 답이 없어보였는데 autossh는 ssh랑 똑같은 기능을 하면서 거기에 연결이 끊어지면 다시 연결을 만들어주는 기능이 있어서 터널링 만들어놓고 신경 끄고 쓰기 좋아서 제가 쓰고 있는 방법을 좀 소개 해보려구요.
지금 상황부터 설명을 드릴게요.
제가 계정을 갖고 있는 컴퓨터가 네대가 있어요.
fixed :고정 IP가 있는 개인 서버 한대.
lab :공유기에 물려있는 연구실 컴퓨터 한대.
virtual :연구실컴에 Bridged network통해서 공유기에 물린 가상머신.
-> 근데 아직 연구실 인턴이라서 공유기에 맘대로 포트포워딩을 할 수 없어요!
notebook :어느 공유기에 물릴 지 모르는 노트북 한대.
-> 동아리방에, 자취방에, 테더링에. 그래서 포트포워딩을 할 수 없어요!
제가 좀 자유로운 영혼이라 어디를 돌아다니던 어느 컴퓨터에서나 다른 어떤 컴퓨터로든간에 ssh 연결을 하고 싶었어요.
그래서 lab, virtual, notebook 에서 ===> fixed로 리버스터널링을 해보려고 했어요.
notebook에서는 ssh -R 2200:localhost:22 반복문@fixed -Nf
lab에서는 ssh -R 2201:localhost:22 반복문@fixed -Nf
virtual에서는 ssh -R 2202:localhost:22 반복문@fixed -Nf
를 rc.local에 등록해놓았어요. 부팅 직후에 리버스터널을 만들게끔요.
이렇게 해두니깐 어디서든간에 ssh fixed에 접속해서
ssh localhost -p 2200 으로 리버스터널을 타고 notebook에,
ssh localhost -p 2201으로 lab에
ssh localhost -p 2202으로 virtual에 접속할 수 있었지만!
노트북을 접고 다른 장소로 이동하니깐 네트워크가 끊어지면서 notebook으로 리버스터널이 제대로 안되더라구요!
그래서 찾은게 autossh라고 끊어진 네트워크가 복구되면 다시 연결해주는 프로그램이었어요.
그래서 rc.local에 등록한 ssh를 전부 autossh로 교체했더니 이제 네트워크가 끊어지는 문제는 없더라구요.
지금은 rc.local에 각각
ssh -L 2200:localhost:2200 반복문@fixed -Nf
ssh -L 2201:localhost:2201 반복문@fixed -Nf
man autossh에 보면
-f causes autossh to drop to the background before running ssh. The -f flag is stripped from arguments passed to ssh.
Note that there is a crucial a difference between -f with autossh, and -f with ssh: when used with autossh ssh will
be unable to ask for passwords or passphrases. When -f is used, the "starting gate" time (see AUTOSSH_GATETIME) is
set to 0.
라고. 클라이언트에서 서버를 향해서 ssh-copy-id를 하던지 해서 전부 키 교환이 돼 있어야 -f옵션이 있을때 터널이 정상적으로 열립니다.
예전에 telnet 정말 많이 사용했었는데. SSH하고 터널링은 한번도 이용해본 적이 없네요 ㅋ.
잘 읽고 갑니다. 기회 있으면 저도 다음에 SSH 한번 써봐야겠네요.
전화로 문의 드려 고견 구하고자 합니다
도움 부탁 드려도 될런지요
from CLIEN+
autossh가 -f옵션이 붙으면 stdio를 통한 인증과정이 없어서 ssh서버에 로그인이 안되더라구요.
man autossh에 보면
-f causes autossh to drop to the background before running ssh. The -f flag is stripped from arguments passed to ssh.
Note that there is a crucial a difference between -f with autossh, and -f with ssh: when used with autossh ssh will
be unable to ask for passwords or passphrases. When -f is used, the "starting gate" time (see AUTOSSH_GATETIME) is
set to 0.
라고. 클라이언트에서 서버를 향해서 ssh-copy-id를 하던지 해서 전부 키 교환이 돼 있어야 -f옵션이 있을때 터널이 정상적으로 열립니다.