Yarn: Yarn can hang on a git+ssh dependency if ssh private key password is set and not automatically sent

Created on 19 Apr 2017  路  5Comments  路  Source: yarnpkg/yarn

Do you want to request a feature or report a bug?

Bug

What is the current behavior?

I have a dependency that is a private github repo, of the sort git+ssh://[email protected]/company/repo#v27

I also have an ssh private key with a password on it that was set up to read from the OS X keychain, and that is used with my github account. The setting to auto-keychain was lost, and the result was that yarn would hang trying to resolve the github dependency.

If the current behavior is a bug, please provide the steps to reproduce.

  1. Use a private github-based git+ssh dependency
  2. Use an ssh key with a password on the private key, and remove settings that would automatically supply it (Remove UseKeychain yes, AddKeysToAgent yes from ~/.ssh/config)

What is the expected behavior?

If you try to load the dependencies using npm install, when it hits the git+ssh dependency, install pauses and requests a password, and then proceeds, and the install completes.

If I use yarn, it just hangs forever, for no obvious reason.

I was able to resolve this for myself by making the auto-passthroughs work again, which causes yarn to work correctly but I think a clear password prompt a la npm would be a better result.

Please mention your node.js, yarn and operating system version.
Yarn: 0.23.2
Node: 6.9.0
OS: Mac OS X 10.12.3

triaged

Most helpful comment

I've had this problem too. The problem (at least for me) is that yarn's progress bar overwrites the prompt for my ssh passphrase. npm shuts off the progress bar in such situations. yarn doesn't.

I can get it working by running yarn > /dev/null to silence the progress bar and most of yarn's output, allowing me to see the prompt and input my passphrase.

All 5 comments

+1

I've had this problem too. The problem (at least for me) is that yarn's progress bar overwrites the prompt for my ssh passphrase. npm shuts off the progress bar in such situations. yarn doesn't.

I can get it working by running yarn > /dev/null to silence the progress bar and most of yarn's output, allowing me to see the prompt and input my passphrase.

Tested with 0.27.5 & 0.28.4 - it still hangs at Resolving packages....

  • If I execute ssh [email protected] first (so that there is a keep-alive SSH connection to github.com), then yarn add will proceed successfully.

  • Or, if I use a private key without passphrase, yarn add also proceeds successfully.

@iwinux it should be fixed with 0.28.x. This is the PR which fixes it: #3633 (there were a few follow ups to that tho). May be you can also try the nightly builds?

Closing due to inactivity.

Was this page helpful?
0 / 5 - 0 ratings