【发布时间】:2015-03-05 14:26:13
【问题描述】:
我正在大学从事一个项目,因此必须使用位于大学大楼内的测试台服务器。问题是我只能在大学的“正确”网络中连接到这些服务器。即使我在笔记本上使用大学 WLAN,我也无法直接连接到测试平台。
唯一的可能是首先连接到正确子网中的机器(称为“门”)。我什至可以从我的家用电脑通过 ssh(经过测试并且可以正常工作)来做到这一点。从这台机器我可以连接到所有测试台机器(经过测试并且可以工作)
现在我想在我的笔记本电脑上开发我的代码并将它分发到所有机器(3x 测试台服务器)上,并在我分发它之后立即启动它。我想过为此使用 rsync,当我不必执行“间接”rsync(首先将其 rsync 到门上的目录,然后 rsync 到所有测试台服务器)时,它可以正常工作
当我手动执行此操作时效果很好。但我想在一个shell脚本中做到这一点。它应该尽可能舒适,因为我必须多次更改我的代码并分发以对其进行测试。
所有机器都运行ubuntu,除了运行xubuntu的门(我认为应该不是问题)
我的第一次尝试是这样的
rsync -ra -e "ssh -p 24" src me@host.of.my.uni.edu:Schreibtisch/_rsync_tmp/
ssh -T me@host.of.my.uni.edu -p 24 << EOF
cd ~/Schreibtisch/_rsync_tmp;
echo "sync to tb14";
rsync -ra src stack@tb14:me/;
echo "sync to tb15";
rsync -ra src stack@tb15:me/;
echo "sync to tb16";
rsync -ra src stack@tb16:me/;
EOF
但由于某种原因,我收到了错误消息
同步到 tb14
权限被拒绝,请重试。
权限被拒绝,请重试。
权限被拒绝(公钥、密码)。
rsync:连接意外关闭(到目前为止收到 0 个字节)[发送者]
rsync 错误:io.c(226) [sender=3.1.0] 处出现无法解释的错误(代码 255)
我不知道为什么会收到“权限被拒绝”。它甚至没有要求我输入 ssh 密钥的密码。当我登录到网关然后从那里执行 rsync 时,它按预期工作。
有人有想法吗? :) 是否有一种更简单的方法可以对无法直接访问的系统进行 rsync? (但通过另一个系统)
编辑:
这似乎有效:
rsync -ra -e "ssh -p 24" src me@host.of.my.uni.edu:Schreibtisch/_rsync_tmp/
ssh -t -t me@host.of.my.uni.edu -p 24 'cd ~/Schreibtisch/_rsync_tmp;
echo "sync to tb14";
rsync -ra src stack@tb14:me/;
echo "sync to tb15";
rsync -ra src stack@tb15:me/;
echo "sync to tb16";
rsync -ra src stack@tb16:me/;'
但现在我必须输入每个 tb* 主机的密码。
我尝试了 ssh-add 但收到此消息
无法打开与您的身份验证代理的连接。
我能做什么?
【问题讨论】: