SFTP wormfile: pull SSH key from YAMA_SSH_KEY if set
This commit is contained in:
parent
1ac9bb6d8d
commit
00fa9d0951
@ -2,7 +2,7 @@ extern crate core;
|
||||
|
||||
use async_trait::async_trait;
|
||||
use eyre::{bail, Context as EyreContext, ContextCompat};
|
||||
use openssh::{KnownHosts, RemoteChild, Session, Stdio};
|
||||
use openssh::{KnownHosts, RemoteChild, Session, SessionBuilder, Stdio};
|
||||
use openssh_sftp_client::error::SftpErrorKind;
|
||||
use openssh_sftp_client::file::{File, TokioCompatFile};
|
||||
use openssh_sftp_client::fs::{DirEntry, Fs};
|
||||
@ -55,7 +55,12 @@ struct SftpConn {
|
||||
impl SftpConn {
|
||||
pub async fn create(ssh_connect: &str, root_dir: impl Into<PathBuf>) -> eyre::Result<Self> {
|
||||
let root_dir = root_dir.into();
|
||||
let session = Session::connect(ssh_connect, KnownHosts::Strict).await?;
|
||||
let mut session_builder = SessionBuilder::default();
|
||||
if let Ok(ssh_key_path) = std::env::var("YAMA_SSH_KEY") {
|
||||
session_builder.keyfile(&ssh_key_path);
|
||||
}
|
||||
session_builder.known_hosts_check(KnownHosts::Add);
|
||||
let session = session_builder.connect(ssh_connect).await?;
|
||||
|
||||
let res = SftpConnAsyncTryBuilder {
|
||||
ssh: session,
|
||||
|
Loading…
x
Reference in New Issue
Block a user