autoSSH에서 포트 노킹을 사용할 수 있습니까?

autoSSH에서 포트 노킹을 사용할 수 있습니까?

autoSSH에서 포트 노킹을 어떻게 사용합니까?

내 현재 솔루션은 스크립트를 실행하는 것입니다.

#! /bin/bash
while :
do
        knock myhomecomputer.com 64001 && sleep 1 && knock myhomecomputer.com 64002 && sleep 1 && knock myhomecomputer.com 64003 && sleep 1 && knock myhomecomputer.com 64004
        ssh -R 65522:localhost:22 myhomecomputer.com
done

위 스크립트는 crontab에 다음과 같이 배치됩니다.

@reboot screen -dmS reverseSSH /home/user_me/reverse_ssh_4_myhomecomputer

이러한 스크립트는 autoSSH와 어떻게 다릅니까? autoSSH는 어떤 추가 사례를 처리합니까?

아이디어는 위의 스크립트 또는 autoSSH를 대학 방화벽 뒤에 있는 내 연구실 컴퓨터에서 실행하여 집에서 SSH로 연결할 수 있도록 하는 것입니다. 내 집 컴퓨터는 엄청난 양의 무차별 대입 SSH 공격에 직면했기 때문에 노크 시퀀스로 활성화된 방화벽 뒤에 컴퓨터를 설치해야 했습니다. 이 문제를 처리하는 더 좋은 방법이 있나요?

위 스크립트는 작동하며 집 컴퓨터에서 다음 명령을 사용하여 대학 컴퓨터에 SSH로 접속할 수 있습니다.

ssh -p 65522 localhost

답변1

이것이 내가 문제를 해결한 방법이다

  1. ~/.ssh/config다음을 추가하기 위해 실험실 컴퓨터에서 편집했습니다.

    host myhomecomputer.com
        HostName myhomecomputer.com
        user user_me
        IdentityFile ~/.ssh/user_me.openSSH
    
    host myhomecomputer
        HostName myhomecomputer.com
        user user_me
        IdentityFile ~/.ssh/user_me.openSSH
        ProxyCommand bash -c 'source knock_myhomecomputer_ssh; ssh -TN -R 65522:localhost:22 myhomecomputer.com'
    

    이름 myhomecomputer(별칭/바로가기) 및 myhomecomputer.com(실제 호스트)을 확인하세요.

  2. 는 다음 knock_myhomecomputer_ssh과 같습니다 -

    SLEEP_T=0.75
    knock myhomecomputer.com 64001 && sleep $SLEEP_T && knock myhomecomputer.com 64002 && sleep $SLEEP_T && knock myhomecomputer.com 64003 && sleep $SLEEP_T && knock myhomecomputer.com 64004
    
  3. 내 항목에 다음을 추가했습니다.crontab

    @reboot autossh -f myhomecomputer
    

관련 정보