如何使用 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
这就是我解决问题的方法
我
~/.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
(实际主机)。如下
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
将以下内容添加到我的
crontab
@reboot autossh -f myhomecomputer