技术提示:更多 ssh 隧道
发布于 2009 年 8 月 25 日
使用 ssh 隧道,我可以保护通常未受保护和/或加密的服务,防止未经授权的访问。 在此示例中,我展示了如何设置到我的 IRC 代理的安全连接,但您可以将相同的方案用于其他用途。
我从我的.xinitrc文件运行以下脚本。 它执行以下操作
- 使用 fping 检查是否可以访问我的 dircproxy 主机 (myhost)。
- 调用 autossh 以运行到主机的持久转发 ssh 会话。
- 使用 logger 将适当的消息记录到 syslog。
- 输出 autossh PID,可用于等待。
#!/bin/sh
#
# Starts a tunneled connection to dIRCproxy on port 57000.
#
PROG=`basename $0`
if [ `which fping|wc -l` -eq 0 ]; then
logger -p user.info $PROG: missing fping
exit 0
fi
if [ `which autossh|wc -l` -eq 0 ]; then
logger -p user.info $PROG: missing autossh
exit 1
fi
fping myost -q
if [ $? -eq 0 ]; then
autossh -X -N -L 57000:localhost:57000 frankie@myhost </dev/null >/dev/null >&1 &
PID=$!
logger -p user.info $PROG: dircproxy tunnel started as $PID
echo $PID
else
logger -p user.info $PROG: klecker not reachable
fi
您可能不熟悉 fping 或 autossh。Fping 本质上只是具有一些附加功能的 ping,而且更适合在脚本中使用。 Autossh 是一个 ssh 包装器,用于启动和监视 ssh 的副本。