Suponha a seguinte configuração:
- O usuário
bob
está trabalhando localmente em sua estação de trabalhofoo
. - O usuário
alice
está trabalhando localmente em sua estação de trabalhobar
. - O usuário
bob
tem acesso ssh ao servidorbaz:22
por meio de uma chave armazenada embob@foo:.ssh/id_rsa
. - O usuário
alice
tem acesso ssh àbob
estação de trabalho,foo:22
mas não ao servidorbaz
.
Existe uma maneira de bob
ssh baz
compartilhar sua sessão (via encaminhamento de porta?) Ou chave (via encaminhamento ssh-agent
?) De modo que alice
possa acessar baz
viabar
foo
(assumindo bob
a identidade de on foo
) ?
Termo aditivo:
Há mais alguns pensamentos que eu deveria ter esclarecido:
bob
não queralice
saber a senha delebob
não queralice
poder continuarrm -rf /home/bob
(foo
nobaz
entanto, isso seria bom, obviamente).
Conforme sugerido por @mukesh-sai-kumar , pode-se fazer o alice
login foo
(como bob
?) E ssh
com a chave compartilhada de lá.
A melhor abordagem que posso ver até agora seria criar um novo par de chaves para alice
on bar
, permitir a chave pública foo
e executar automaticamente o ssh bob@baz
por meio da command="ssh [...]"
opção no authorized_keys
arquivo.
Isso permitiria configurar ssh baz
o uso bar
do ssh bob@foo
novo par de chaves via alice@bar:.ssh/config
com o encaminhamento de bob@foo
logins usando essa chave específica para bob@baz
via bob@foo:.ssh/authorized_keys
(autorizando alice
a chave de mas restringindo command
a ssh baz
chamada).
Dessa forma, as duas novas restrições seriam atendidas e alice
nem veriam nada, como mostra esta hipotética sessão interativa:
[alice@foo:~] (1) $ hostname
foo
[alice@foo:~] (2) $ whoami
alice
[alice@foo:~] (3) $ ssh baz
[bob@baz:~] (1) $ hostname
baz
[bob@baz:~] (2) $ whoami
bob
[bob@baz:~] (3) $ exit
[alice@foo:~] (4) $ hostname
foo
[alice@foo:~] (5) $ whoami
alice
[alice@foo:~] (6) $
O único problema restante é que bob
a chave ssh foo
precisa ser compartilhada com bob
a sessão iniciada por ssh
from alice
(via ssh-agent
? ) .