通过 SSH 连接到具有已知但非静态(可变) IP 的主机

通过 SSH 连接到具有已知但非静态(可变) IP 的主机

是否可以拥有ssh.ssh/config使用存储在文件中的动态 IP 地址?

我有一台具有动态 DNS 的远程计算机,它将其当前 IP 放在共享 Dropbox 中的一个文件中。我宁愿用这种方式查找它的 IP,也不愿使用动态 DNS 服务。

现在我想使用ssh server我的文件中的所有选项和首选项.ssh/config。但由于 IP 是动态的,无法存储在该配置文件中,我不确定该怎么做。我可以访问 IP 并将其用于吗ProxyCommand

答案1

当然:

ProxyCommand "~/bin/connect-via-dropbox %h %p"

...connect-via-dropbox脚本将从您的 Dropbox 中查找 IP 地址,然后使用 、 或 连接ncsocatncat

例如:

#!/bin/sh
host=$1
port=$2

file="$HOME/Dropbox/Server IPs/$host.txt"
if [ ! -s "$file" ]; then
    echo "error: '$file' empty or not found" >&2; exit 1
fi

ip=$(< "$file")
exec nc -v "$ip" "$port"
#exec socat stdio "tcp:$ip:$port"
#exec ncat "$ip" "$port"

答案2

您可以使用反引号 -->`<-- 用其输出替换命令,例如

ssh `cat file`

相关内容