是否可以拥有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 地址,然后使用 、 或 连接nc
到socat
它ncat
。
例如:
#!/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`