authenticator/
authenticator.rs

1use anyhow::Result;
2use pam_ssh_agent::{authenticate, PrintLog};
3use ssh_agent_client_rs::Client;
4use std::env;
5use std::path::Path;
6
7fn main() -> Result<()> {
8    let path = env::var("SSH_AUTH_SOCK").expect("SSH_AUTH_SOCK is not set");
9    let client = Client::connect(Path::new(path.as_str()))?;
10
11    let authorized_keys_path = env::args().nth(1).expect("argument missing");
12
13    let result = authenticate(authorized_keys_path.as_str(), client, &mut PrintLog {})?;
14
15    println!("Status of authentication is: {}", result);
16    Ok(())
17}