Eu tenho o dobro do problema, pois as máquinas são associadas ao domínio e o caminho $HOME
é muito longo e meu nome de usuário, por exemplo: /home/local.companyname.com/Smitty.Werbenjagermanjensen
, então praticamente qualquer caminho de soquete de controle será muito longo.
Existem duas outras maneiras de resolver esse problema:
- Para nomes de host longos:
- Em vez de usar as bandeiras usuais
%r
, %h
e %p
, você pode usar %C
, que é um hash das três.
- por exemplo:
dfd609b4ea05eab3927aa71b91115b29317d017d
-
Nota: Esta opção é aparentemente uma adição recente ao ssh, por isso, se não estiver funcionando, você deve verificar a atualização do ssh e / ou do sistema operacional.
-
Por longos caminhos anteriores:
-
Eu prefiro muito mais que meus sockets morem em ~/.ssh/sockets
para que ninguém mais possa tocá-los.
mkdir -p ~/.ssh/sockets && \
chmod 0700 ~/.ssh/sockets && \
sudo ln -s ~/.ssh/sockets /var/local/sw-ssh && \
sudo chown -h $myuser:$mydomain /var/local/sw-ssh
-
Defina seu Ansible control_path
como /var/local/sw-ssh/%%C
Com esses dois caminhos do meu soquete vão de: /home/local.companyname.com/Smitty.Werbenjagermanjensen/.ssh/sockets/Smitty.Werbenjagermanjensen@foobar.dev.application.companyname.com-22
Para: /var/local/sw-ssh/dfd609b4ea05eab3927aa71b91115b29317d017d
Nota: Esta é toda a configuração do cliente ssh perfeitamente válida e pode ser adicionada ao seu ~/.ssh/config
para que você possa se beneficiar da bondade do ssh 24/7 e não apenas enquanto estiver executando o Ansible joga.
Host *
ControlMaster auto
ControlPath /var/local/sw-ssh/%C
ControlPersist 600