deployer Too many authentication failures host Пример настройки ssh

Received disconnect from ... port 22:2: Too many authentication failures
Connection to .... closed by remote host.
muxclient: master hello exchange failed
Failed to connect to new control master

Возможная причина и решение

Если у вас в ~/.ssh/config все настроено как надо и команда

ssh имяхоста

выполняется без проблем, то вообще не указывайте в конфигурации хоста в deploy.php ничего кроме имени хоста (это может быть вообще псевдоним), т.е. в моем случае не работала конфигурация вроде:

host('debloc')
    ->hostname('192.168.56.10')
    ->user('debuser')
    ->stage('test')
	->configFile('~/.ssh/config')
	//->identityFile('~/.ssh/debloc_rsa') // без этого не работал
		
    ->set('deploy_path', '/var/www/ktu2')
    ->set('composer_options', '{{composer_action}} --verbose --prefer-dist --no-progress --no-interaction ')
    ->forwardAgent(false);

при наличии в ~/.ssh/config настроек (но не только для этого хоста):

Host debloc
     Hostname 192.168.56.10
     User debuser
     Port 22
     IdentityFile ~/.ssh/debloc_rsa

Видимо, наличие имени пользователя и хоста уже приводило к отказу от реального чтения ~/.ssh/config, поэтому в итоге решением оказался переход на конфиг, где указывается только имя хоста:

host('debloc')
    ->stage('test')
    ->set('deploy_path', '/var/www/ktu2')
    ->set('composer_options', '{{composer_action}} --verbose --prefer-dist --no-progress --no-interaction ')
    ->forwardAgent(false);

Т.е. в общем случае:

host('имяхоста')
    ->stage('test')
    ->set('deploy_path', '/var/www/ktu2')
    ->set('composer_options', '{{composer_action}} --verbose --prefer-dist --no-progress --no-interaction ')
    ->forwardAgent(false);

(это же имяхоста вы должны описать в вашем локальном .ssh, это удобно если вы не хотите хранить настройки соединения, адрес сервера и т.д. в репозитории, если же вам нужно деплоить из самых разных мест, то, можно явно прописать все настройки, как уже было сказано выше, но тогда на указать и путь к ключу, который примет сервер:

<pre class="brush: php">
host('debloc')
    ->hostname('192.168.56.10')
    ->user('debuser')
    ->stage('test')
	->configFile('~/.ssh/config')
	->identityFile('~/.ssh/debloc_rsa') // без этого не работал
		
    ->set('deploy_path', '/var/www/ktu2')
    ->set('composer_options', '{{composer_action}} --verbose --prefer-dist --no-progress --no-interaction ')
    ->forwardAgent(false);
</pre>

)

Key Words for FKN + antitotal forum (CS VSU):