Permissões do diretório ControlMaster

1

O recurso ControlMaster de ssh permite usar o mesmo canal para vários ssh -commandos, consulte, por exemplo, Como posso manter abra a conexão ssh e use-a a partir de scripts de shell?

Para usar ControlMaster , adicionei essas linhas a ~/.ssh/config :

Host example.com
  ControlMaster auto
  ControlPath ~/.ssh/sockets/%r@%h-%p
  ControlPersist 5m

Quando executo ssh example.com , recebo o seguinte erro:

$ ssh example.com
bind: No such file or directory
unix_listener: cannot bind to path: /home/peter/.ssh/sockets/[email protected]

Para corrigir isso, posso executar mkdir ~/.ssh/sockets :

$ mkdir ~/.ssh/sockets
$ ll ~/.ssh/sockets
total 8
drwxrwxr-x 2 peter peter 4096 Dec 28 17:51 ./
drwx------ 3 peter peter 4096 Dec 28 17:51 ../

Como você pode ver, o diretório ~/.ssh/sockets tem permissões rwxrwxr-w . Quais devem ser as permissões de ~/.ssh/sockets ? O sockets deve estar em ~/.ssh ?

    
por Peter 28.12.2017 / 17:58

1 resposta

1

Você pode colocar seu diretório sockets em qualquer lugar que desejar (contanto que você tenha os direitos apropriados para escrever lá), mas colocá-lo dentro do .ssh parece-me a idéia mais sensata (exceto em alguns casos específicos muito raros) como eu tinha uma vez: o nome do caminho era muito longo)

Como .ssh já deve ser algo como drwx------ , os direitos de .ssh/sockets podem ser os mesmos ou mais liberais, isso não terá impacto.

Mas eu não acho que isso seja problema seu. Sua mensagem de erro não é consistente com o seu arquivo de configuração. O arquivo de configuração tem um @ no ControlPath (e está ok) mas na mensagem de erro você não tem um.

Ao testar, certifique-se de matar todas as ssh instâncias em execução no host fornecido, pois algumas podem persistir de acordo com sua configuração e, em seguida, se você alterá-lo, pode não obter o comportamento esperado.

PS: por favor, use example.com quando você precisar de um nome de host fictício para fins de documentação

    
por Patrick Mevzek 28.12.2017 / 19:02