Proxy命令与sudo


5

我正在尝试设置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交互中有一些我遗漏的东西,但是还没能弄清楚。


不会有ProxyCommand ssh admin@destination.server.com工作吗?为什么有sudo必要?
terdon 2013年

管理员设置了公钥/私钥对
布鲁尔2013年

你不能只加密私钥吗?密码短语与sudo密码的用途相同。
Dennis

Answers:


-1

如果您想要轻松输入:

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

然后dest_on_server让你到那里。当然,将dest_on_server替换为您想要的任何短名称。

下一个替代方案是ssh,并在$HOME/.ssh/authorized_keys文件中添加您自己的公钥。然后记下用户ID ssh user_id@destination.server.com


与使用proxycommand的ssh配置完全无法兼容。
丹尼尔法瑞尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.