带有 sudo 的 ProxyCommand

带有 sudo 的 ProxyCommand

我正在尝试设置 SSH,以便可以轻松登录到只能通过 sudo 访问中间服务器的服务器。

从命令行登录的形式如下:

sudo -u admin ssh destination.server.com

这样做没有问题 —— 还算公平。但是,以下变体在 ProxyCommand 中不起作用:

ProxyCommand sudo -u admin ssh destination.server.com

不会分配伪终端,因为 stdin 不是终端。

ProxyCommand sudo -u admin ssh -t -t destination.server.com

tcgetattr:无效参数

最后一种变体似乎确实与目标服务器交换了信息,但随后它就挂起了:

OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /home/me/.ssh/config
debug1: Applying options for destination
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Executing proxy command: exec sudo -u admin ssh -t -t destination.server.com
debug1: identity file ...
debug1: identity file ...
debug1: identity file ...
debug1: loaded 3 keys
tcgetattr: Invalid argument
debug1: ssh_exchange_identification: Last login: Fri Jan  4 22:48:26 2013 from intermediate.server.com

我感觉 ProxyCommand 内部的 sudo / ssh 交互中缺少了一些东西,但还没能弄清楚。

答案1

如果您希望轻松打字:

alias dest_on_server='sudo -u admin ssh destination.server.com'

然后目标服务器让你到达那里。当然,替换目标服务器使用您想要的任何简称。

下一个选择是使用 ssh 进行长距离传输,并在$HOME/.ssh/authorized_keys文件。记下用户 ID,然后。ssh [email protected]

相关内容