我希望无需输入密码即可通过网关服务器将日志文件从远程 PC 传输到本地 PC。网关服务器使用 acctA@gatewayServer。远程 PC 使用 acctB@remotePC。
我已经在网关和远程上设置了 SSH 私钥/公钥。
从我的本地 PC,我可以通过 2 跳直接通过 SSH 进入 remotePC,而无需输入 2 个帐户的密码,方法是:
ssh acctA@gatewayServer -t ssh acctB@remotePC
但是当我将 SCP 与 ProxyCommand 结合使用时,它会要求我输入 acctB 的密码。为什么?
scp -Cp -o "ProxyCommand ssh -q acctA@gateway -W remotePC:22" acctB@remotePC:/opt/logpath/log1.tgz log01.tgz
提前向所有能提供建议的人表示感谢。
答案1
最简单的方法是在你的.ssh/配置文件:
Host remotePC
User acctB
HostName remotePC
ProxyCommand ssh AcctA@gatewayServer nc %h %p 2> /dev/null
然后您可以使用它来连接或复制文件:
ssh remotePC
scp acctB@remotePC:/home/AcctB/somefile .
为了实现此功能,你需要 netcat (数控)命令安装在网关服务器上。
如果你真的坚持要一句话(但我永远记不住所有这些东西),那么你可以这样做:
ssh -o "ProxyCommand ssh acctA@gatewayServer nc -w 1 %h 22" acctB@remotePC
scp 也同样如此。