Created
November 27, 2014 10:13
-
-
Save bararchy/cf7a50ddd60cc5186e5b to your computer and use it in GitHub Desktop.
C and ruby
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
int authenticate(ssh_session session) { | |
ssh_message message; | |
do { | |
message=ssh_message_get(session); | |
if(!message) | |
break; | |
switch(ssh_message_type(message)){ | |
case SSH_REQUEST_AUTH: | |
switch(ssh_message_subtype(message)){ | |
case SSH_AUTH_METHOD_PASSWORD: | |
printf("User %s wants to auth with pass %s\n", | |
ssh_message_auth_user(message), | |
ssh_message_auth_password(message)); | |
if(auth_password(ssh_message_auth_user(message), | |
ssh_message_auth_password(message))){ | |
ssh_message_auth_reply_success(message,0); | |
ssh_message_free(message); | |
return 1; | |
} | |
ssh_message_auth_set_methods(message, | |
SSH_AUTH_METHOD_PASSWORD | | |
SSH_AUTH_METHOD_INTERACTIVE);// not authenticated, send default message | |
ssh_message_reply_default(message); | |
break; | |
case SSH_AUTH_METHOD_NONE: | |
default: | |
printf("User %s wants to auth with unknown auth %d\n", | |
ssh_message_auth_user(message), | |
ssh_message_subtype(message)); | |
ssh_message_auth_set_methods(message, | |
SSH_AUTH_METHOD_PASSWORD | | |
SSH_AUTH_METHOD_INTERACTIVE); | |
ssh_message_reply_default(message); | |
break; | |
} | |
break; | |
default: | |
ssh_message_auth_set_methods(message, | |
SSH_AUTH_METHOD_PASSWORD | | |
SSH_AUTH_METHOD_INTERACTIVE); | |
ssh_message_reply_default(message); | |
} | |
ssh_message_free(message); | |
} while (1); | |
return 0; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
while true do | |
SSHSocket.ssh_message_get(sshsession) do |msg| | |
puts msg | |
type = SSHSocket.ssh_message_type(msg) | |
puts type | |
case type | |
when Messages_General::SSH_REQUEST_AUTH | |
subtype = SSHSocket.ssh_message_subtype(msg) | |
puts subtype | |
case subtype | |
when Messages_Auth::SSH_AUTH_METHOD_PASSWORD | |
user_ssh = SSHSocket.ssh_message_auth_user(msg) | |
pass_ssh = SSHSocket.ssh_message_auth_password(msg) | |
puts user_ssh, pass_ssh | |
end | |
else | |
SSHSocket.ssh_message_auth_set_methods(msg,SSH_AUTH_METHOD_PASSWORD | SSH_AUTH_METHOD_INTERACTIVE); | |
SSHSocket.ssh_message_reply_default(msg); | |
end | |
SSHSocket.ssh_message_free(msg) | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment