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
    

関連情報