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 async_trait::async_trait;
|
||||||
use eyre::{bail, Context as EyreContext, ContextCompat};
|
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::error::SftpErrorKind;
|
||||||
use openssh_sftp_client::file::{File, TokioCompatFile};
|
use openssh_sftp_client::file::{File, TokioCompatFile};
|
||||||
use openssh_sftp_client::fs::{DirEntry, Fs};
|
use openssh_sftp_client::fs::{DirEntry, Fs};
|
||||||
@ -55,7 +55,12 @@ struct SftpConn {
|
|||||||
impl SftpConn {
|
impl SftpConn {
|
||||||
pub async fn create(ssh_connect: &str, root_dir: impl Into<PathBuf>) -> eyre::Result<Self> {
|
pub async fn create(ssh_connect: &str, root_dir: impl Into<PathBuf>) -> eyre::Result<Self> {
|
||||||
let root_dir = root_dir.into();
|
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 {
|
let res = SftpConnAsyncTryBuilder {
|
||||||
ssh: session,
|
ssh: session,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user