clj-commons / clj-commons/clj-ssh

ssh-agent causing

Open
#48 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Clojure
Stars
241
Forks
66
PR merge metrics
No merged PRs in 30d

Description

I'm running this on OS/X El Capitan.

The code is simple:

```
(ssh/ssh-agent {})
```

It causes:

```
2. Unhandled com.jcraft.jsch.JSchException
fromBase64: invalid base64 data

Util.java: 63 com.jcraft.jsch.Util/fromBase64
KnownHosts.java: 218 com.jcraft.jsch.KnownHosts/setKnownHosts
KnownHosts.java: 54 com.jcraft.jsch.KnownHosts/setKnownHosts
JSch.java: 317 com.jcraft.jsch.JSch/setKnownHosts
ssh.clj: 151 clj-ssh.ssh/ssh-agent/fn
ssh.clj: 150 clj-ssh.ssh/ssh-agent
REPL: 22 node.upload.sftp/eval61527
Compiler.java: 6782 clojure.lang.Compiler/eval
Compiler.java: 6745 clojure.lang.Compiler/eval
core.clj: 3081 clojure.core/eval
main.clj: 240 clojure.main/repl/read-eval-print/fn
main.clj: 240 clojure.main/repl/read-eval-print
main.clj: 258 clojure.main/repl/fn
main.clj: 258 clojure.main/repl
RestFn.java: 1523 clojure.lang.RestFn/invoke
interruptible_eval.clj: 87 clojure.tools.nrepl.middleware.interruptible-eval/evaluate/fn
AFn.java: 152 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
core.clj: 630 clojure.core/apply
core.clj: 1868 clojure.core/with-bindings*
RestFn.java: 425 clojure.lang.RestFn/invoke
interruptible_eval.clj: 85 clojure.tools.nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 222 clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
interruptible_eval.clj: 190 clojure.tools.nrepl.middleware.interruptible-eval/run-next/fn
AFn.java: 22 clojure.lang.AFn/run
ThreadPoolExecutor.java: 1142 java.util.concurrent.ThreadPoolExecutor/runWorker
ThreadPoolExecutor.java: 617 java.util.concurrent.ThreadPoolExecutor$Worker/run
Thread.java: 745 java.lang.Thread/run

1. Caused by java.lang.ArrayIndexOutOfBoundsException
399

Util.java: 54 com.jcraft.jsch.Util/fromBase64
KnownHosts.java: 218 com.jcraft.jsch.KnownHosts/setKnownHosts
KnownHosts.java: 54 com.jcraft.jsch.KnownHosts/setKnownHosts
JSch.java: 317 com.jcraft.jsch.JSch/setKnownHosts
ssh.clj: 151 clj-ssh.ssh/ssh-agent/fn
ssh.clj: 150 clj-ssh.ssh/ssh-agent
REPL: 22 node.upload.sftp/eval61527
Compiler.java: 6782 clojure.lang.Compiler/eval
Compiler.java: 6745 clojure.lang.Compiler/eval
core.clj: 3081 clojure.core/eval
main.clj: 240 clojure.main/repl/read-eval-print/fn
main.clj: 240 clojure.main/repl/read-eval-print
main.clj: 258 clojure.main/repl/fn
main.clj: 258 clojure.main/repl
RestFn.java: 1523 clojure.lang.RestFn/invoke
interruptible_eval.clj: 87 clojure.tools.nrepl.middleware.interruptible-eval/evaluate/fn
AFn.java: 152 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
core.clj: 630 clojure.core/apply
core.clj: 1868 clojure.core/with-bindings*
RestFn.java: 425 clojure.lang.RestFn/invoke
interruptible_eval.clj: 85 clojure.tools.nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 222 clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
interruptible_eval.clj: 190 clojure.tools.nrepl.middleware.interruptible-eval/run-next/fn
AFn.java: 22 clojure.lang.AFn/run
ThreadPoolExecutor.java: 1142 java.util.concurrent.ThreadPoolExecutor/runWorker
ThreadPoolExecutor.java: 617 java.util.concurrent.ThreadPoolExecutor$Worker/run
Thread.java: 745 java.lang.Thread/run
```

How do I go round diagnosing the problem? Thank you so much!

UPDATE: It seems to have something to do with the contents of known_hosts (it's not been tampered and SSH works).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with ssh/ssh-agent in ssh.clj around lines 150-151 and inspect how the known_hosts contents reach JSch. Reproduce the call on OS X El Capitan with the reported known_hosts file, then determine which input triggers the fromBase64 error and confirm the issue is resolved without breaking the existing SSH behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
clojure, java
Domain
networking
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.