Roots Discourse

Capistrano deployment

I did a clean install on my Mac, and reinstalled ruby properly, using rvm, though now I have an issue with Capistrano in all my bedrock sites.

I installed gems needed for bedrock/capistrano deploy, with bundle install. My gemfile and capfile are largely base on these ones: https://github.com/roots/bedrock-capistrano.

Now, since the clean install, Capistrano deployment fails while using gems sshkit-1.19.1 / net-ssh-5.2.0, needing more gems (this was not the case before).

~/.rvm/gems/ruby-2.5.6/gems/net-ssh-5.2.0/lib/net/ssh/authentication/ed25519_loader.rb:21:in `raiseUnlessLoaded': OpenSSH keys only supported if ED25519 is available (NotImplementedError)
net-ssh requires the following gems for ed25519 support:
 * ed25519 (>= 1.2, < 2.0)
 * bcrypt_pbkdf (>= 1.0, < 2.0)

After adding the above gems to my bundle and successfully performing a bundle install, I get a new error.

Enter passphrase for ~/.ssh/id_rsa:
#<Thread:0x00007fb6ed16fc00@~/.rvm/gems/ruby-2.5.6/gems/sshkit-1.19.1/lib/sshkit/runners/parallel.rb:10
run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
        1: from ~/.rvm/gems/ruby-2.5.6/gems/sshkit-1.19.1/lib/sshkit/runners/parallel.rb:11:slight_smile:  `block (2 levels) in execute'
~/.rvm/gems/ruby-2.5.6/gems/sshkit-1.19.1/lib/sshkit/runners/parallel.rb:15:
in `rescue in block (2 levels) in execute': 
Exception while executing as user@ssh.domain.tld: undefined method `[]' for nil:NilClass (SSHKit::Runner::ExecuteError)

(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as user@ssh.domain.tld: undefined method `[]' for nil:NilClass

Caused by:
NoMethodError: undefined method `[]' for nil:NilClass

Edit: This error was due to something going wrong with my ssh private/public rsa keypair. After creating a new keypair, the issue was solved.