Когда я пытаюсь использовать s sh в веб-контейнере DDEV после `ddev auth ssh`, ключи s sh не работают,« слишком много ошибок аутентификации » - PullRequest
1 голос
/ 28 апреля 2020

Я использовал ddev auth ssh, чтобы добавить свои идентификаторы s sh в мои проекты DDEV-Local.

Но когда я использую s sh для подключения к внешнему хосту, ssh example.com я получаю «Слишком много ошибок аутентификации»

Received disconnect from 174.127.116.22 port 22:2: Too many authentication failures
Disconnected from 174.127.116.22 port 22

Когда я использую ssh -v example.com, я вижу это попробуйте шесть различных ключей, прежде чем отказаться от «Слишком много ошибок аутентификации»:

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: rfay@rfay-mbp-2017.local RSA SHA256:LrokWMbl1bD0vV0z7Qpn4HLd168NYSIAbqsek6aXIaE agent
debug1: Authentications that can continue: publickey
debug1: Offering public key: rfay@rfay-mbp-2017.local RSA SHA256:ecpRhfcaRWS8EfmYyLuJ81ayhyPWAZd9MG3mKOUKMqA agent
debug1: Authentications that can continue: publickey
debug1: Offering public key: rfay@rfay-mbp-2017.local RSA SHA256:07LrVlDSWu4r+4Eb6WP8FpWYYcREw7IcGm4rtp5v+Ws agent
debug1: Authentications that can continue: publickey
debug1: Offering public key: rfay@rfay-mbp-2017.local RSA SHA256:6L9cIsLlu858CPgb5zZ3v3+5p808uNencyAxJ0S9wOM agent
debug1: Authentications that can continue: publickey
debug1: Offering public key: rfay@rfay-mbp-2017.local RSA SHA256:HwksLkZqEXAK6Zo21+y/C508Mjx2I7EvUQWFScKHsAQ agent
debug1: Authentications that can continue: publickey
debug1: Offering public key: rfay@rfay-mbp-2017.local RSA SHA256:dsGaELF0OPNyQfIYZoEyI+dP3AQqh5r+15iUwfalNtc agent
Received disconnect from 174.127.116.75 port 22:2: Too many authentication failures
Disconnected from 174.127.116.75 port 22

Как я могу решить эту проблему? Обратите внимание, что в моем каталоге ~ / .s sh есть 10 различных закрытых ключей.

1 Ответ

1 голос
/ 28 апреля 2020

Кажется, s sh не был предназначен для использования с множеством закрытых ключей, но некоторые люди все равно их получают. (Обратите внимание, что вы можете использовать один закрытый ключ для многих, многих целей; все, чем вы делитесь с миром или внешней службой, это ключ publi c, который не выдает никакой информации о частном ключ.)

Поскольку ddev auth ssh настраивает для вас агента s sh, и, кажется, нет способа заставить s sh выбрать конкретную c идентификацию из числа идентификационные данные, предоставленные агентом, вам нужно использовать один из двух обходных путей.

Обходное решение # 1: Используйте всего несколько клавиш

Вы, конечно, можете уменьшить число Ключи в вашем каталоге ~ / .s sh равны 6 или меньше (6 - значение по умолчанию в sshd на стороне сервера для MaxAuthTries). Но давайте предположим, что вы не хотите этого делать.

Создайте каталог, возможно ~/ddev-ssh-keys. В этом каталоге скопируйте или используйте символическую ссылку на 6 клавиш, которые вы используете чаще всего. Итак, cd ~/ddev-ssh-keys && for item in goodkey1 goodkey2 ... googdkey6; do ln -s ~/.ssh/$item; done (или любым другим способом, которым вы хотите sh связать или скопировать).

Теперь ddev auth ssh -d ~/ddev-ssh-keys и агент ddev-s sh будут иметь только эти 6 ключей. Если они являются правильными ключами для решения большинства ваших проблем, вам следует использовать этот подход.

Обходной путь № 2: Скопируйте ключи в контейнер с помощью .ddev / homeadditions

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

Если вам действительно нужны ключи в контейнере (в отличие от использования агента), тогда mkdir -p .ddev/homeadditions/.ssh && cp ~/.ssh/<yourimportantkey(s)> .ddev/homeadditions/.ssh && chmod 700 .ddev/homeadditions/.ssh && chmod 600 .ddev/homeadditions/.ssh/*. Затем вы можете использовать файл .ddev / homeadditions / .ssh / config любым удобным для вас способом, включая указание ключей.

Этот ответ адаптирован с https://github.com/drud/ddev/pull/2224

...