From f8eb5a1d13c1911c95fd26fbbc300e74aee558af Mon Sep 17 00:00:00 2001 From: aiju Date: Mon, 24 Apr 2017 16:04:09 +0000 Subject: ssh: add "none" method to find out list of acceptable methods --- sys/src/cmd/ssh.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/sys/src/cmd/ssh.c b/sys/src/cmd/ssh.c index de59cbe02..a486c9fb4 100644 --- a/sys/src/cmd/ssh.c +++ b/sys/src/cmd/ssh.c @@ -672,6 +672,32 @@ if(debug) return partial != 0 || !authok(meth); } +int +noneauth(void) +{ + static char authmeth[] = "none"; + + if(!authok(authmeth)) + return -1; + + sendpkt("bsss", MSG_USERAUTH_REQUEST, + user, strlen(user), + service, strlen(service), + authmeth, sizeof(authmeth)-1); + +Next0: switch(recvpkt()){ + default: + dispatch(); + goto Next0; + case MSG_USERAUTH_FAILURE: + werrstr("authentication needed"); + authfailure(authmeth); + return -1; + case MSG_USERAUTH_SUCCESS: + return 0; + } +} + int pubkeyauth(void) { @@ -1171,7 +1197,7 @@ Next0: switch(recvpkt()){ break; } - if(pubkeyauth() < 0 && passauth() < 0 && kbintauth() < 0) + if(noneauth() < 0 && pubkeyauth() < 0 && passauth() < 0 && kbintauth() < 0) sysfatal("auth: %r"); recv.pkt = MaxPacket; -- cgit v1.2.3