我希望能够连接到服务器,启动一个sudo shell,然后使用代理转发连接到另一台服务器(以便使用SCP将文件复制到受保护区域)。 但:
ubuntu@tunnelator:/var/www$ ssh -p 10022 stevebennett@localhost Last login: Fri Apr 5 10:54:03 2013 from localhost ~ exit Connection to localhost closed. ubuntu@tunnelator:/var/www$ sudo ssh -p 10022 stevebennett@localhost Password:
据推测,启动sudo shell会阻止代理转发。 不同之处在于:
debug1: Offering RSA public key: id_rsa debug1: Server accepts key: pkalg ssh-rsa blen 277 debug1: Authentication succeeded (publickey).
与:
debug1: Next authentication method: publickey debug1: Trying private key: /root/.ssh/id_rsa debug1: Trying private key: /root/.ssh/id_dsa debug1: Trying private key: /root/.ssh/id_ecdsa debug1: Next authentication method: keyboard-interactive
有没有办法做到这一点? (设置大致如下所述: http : //codysoyland.com/2010/jun/6/ssh-tip-automatic-reverse-tunnels-workflow-simplif/ )
感谢user157963的build议,事实certificate这很简单:
sudo -E ssh -p 10022 stevebennett@localhost
或者,为了更有select性,你可以这样做:
sudo su -l -c "export SSH_AUTH_SOCK=$SSH_AUTH_SOCK; ssh -p 10022 stevebennett@localhost"
(注意这只适用于root用户 – 它需要能够读取原始套接字文件。)
我错误地认为$ SSH_AUTH_SOCK环境variables已被保留。 提示:下面的命令不会告诉你任何有用的东西:)
sudo echo $SSH_AUTH_SOCK
而这确实如此:
sudo bash -c 'echo $SSH_AUTH_SOCK'