技术提示:更多 ssh 隧道

使用 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

您可能不熟悉 fpingautosshFping 本质上只是具有一些附加功能的 ping,而且更适合在脚本中使用。 Autossh 是一个 ssh 包装器,用于启动和监视 ssh 的副本。

加载 Disqus 评论