題 Proxy命令與sudo


我正在嘗試設置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交互中有一些我遺漏的東西,但是還沒能弄清楚。


5
2018-01-04 23:01


起源


不會喜歡的東西 ProxyCommand ssh admin@destination.server.com工作?為什麼是 sudo 必要? - terdon
admin設置有公鑰/私鑰對 - brool
你不能加密私鑰嗎?密碼短語與sudo密碼的用途相同。 - Dennis


答案:


如果您想要輕鬆輸入:

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


-1
2017-09-21 23:45



與使用proxycommand的ssh配置完全無法兼容。 - Dan Farrell