sshd 재시작하기
systemctl restart ssh
/etc/init.d/ssh restart
service ssh restart
remote ssh는 서버 A가 방화벽에 때문에 외부에서 접근이 어려울 때 쓴다.
먼저 내부서버A와 외부서버B 사이에 연결이 된다면 게스트C는 B를 통해 A로 우회 접근 할 수 있다.
명령어는 다음과 같다.
ssh -fNT -g -o ServerAliveInterval=60 -R :32773:localhost:22 nas_peter@xiah.duckdns.org -p 12255
32773
, HOST xiah.duckdns.org
, USER nas_peter
로 접속xiah.duckdns.org
에 PORT 12255
로 요청이 들어오면, localhost:22
(서버A)로 연결을 forwarding 하기.#! /bin/bash
is_running=`ps -ef | grep -v "grep" | grep "ssh -fNT -g" | wc -l`
date=$(date "+%Y-%m-%d_%H:%M:%S")
if [ "$is_running" == "0" ]; then
echo "${date} | rssh to be connected" >>
ssh -fNT -g -o ServerAliveInterval=60 -R :32773:localhost:22 nas_peter@xiah.duckdns.org -p 12255
/home/peter/workspace/scripts/check.log 2>&1
else
echo "${date} | rssh still running now" >> /home/peter/workspace/scripts/check.log 2>&1
fi
실행중인 프로세스 중ssh -fNT -g
를 포함하는 프로세스의 갯수를 세어 is_running
에 저장함.
조건문으로 갯수를 확인하여 로그파일에 남긴다.
2>&1
은 기존의 로그파일에 추가하여 작성한다는 뜻. 이게 없으면 덮어쓰기 를 수행한다.