Skip to content

Commit ddee3ef

Browse files
committed
closes #15
1 parent 917c78f commit ddee3ef

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

src/ssh2.nim

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ proc disconnect*(ssh: SSHClient) =
1818
ssh.socket.close()
1919
libssh2.exit()
2020

21-
proc connect*(s: SSHClient, hostname: string, username: string, port = Port(22), password = "", pkey = "", useAgent = false) {.async.} =
21+
proc connect*(s: SSHClient, hostname: string, username: string, port = Port(22), password = "", privKey = "", pubKey = "", useAgent = false) {.async.} =
2222
s.socket = newAsyncSocket()
2323
await s.socket.connect(hostname, port)
2424
s.session = initSession()
@@ -35,8 +35,8 @@ proc connect*(s: SSHClient, hostname: string, username: string, port = Port(22),
3535
break
3636
agent.close_agent()
3737
else:
38-
if pkey.len != 0:
39-
discard s.session.authPublicKey(username, pkey, password)
38+
if privKey.len != 0:
39+
discard s.session.authPublicKey(username, privKey, pubKey, password)
4040
else:
4141
discard s.session.authPassword(username, password)
4242

src/ssh2/private/session.nim

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,18 @@ proc authPassword*(session: Session, username, password: string): bool =
3131
break
3232
result = true
3333

34-
proc authPublicKey*(session: Session; username, pkey: string, passphrase = ""): bool =
35-
let pkey = expandTilde(pkey)
34+
proc authPublicKey*(session: Session; username, privKey: string, pubKey = "", passphrase = ""): bool =
35+
let privKey = expandTilde(privKey)
36+
var pubKey = pubKey
37+
if pubKey.len > 0:
38+
pubKey = expandTilde(pubKey)
39+
3640
while true:
37-
let rc = session.userauth_publickey_from_file(username, nil, pkey, passphrase)
41+
let rc = session.userauth_publickey_from_file(username, pubKey, privKey, passphrase)
3842
if rc == LIBSSH2_ERROR_EAGAIN:
3943
discard
4044
elif rc < 0:
41-
raise newException(AuthenticationException, &"Authentication with privateKey {pkey} failed!")
45+
raise newException(AuthenticationException, &"Authentication with privateKey {privKey} failed!")
4246
else:
4347
break
4448
result = true

0 commit comments

Comments
 (0)