ssh: add "none" method to find out list of acceptable methods

This commit is contained in:
aiju 2017-04-24 16:04:09 +00:00
parent 1f6a604c23
commit f8eb5a1d13

View file

@ -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;