read() blocks after calling request_auth_agent_forwarding()
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- rust
- Ambito
- networking
Direzione di ricerca
Inizia con il riproduttore Rust nell’issue, in particolare request_auth_agent_forwarding(), channel.exec() e channel.read_to_string(). Traccia come viene gestito il traffico di forwarding dell’agent durante la lettura dell’output del comando, quindi confronta il comportamento con e senza ssh-add. Il lavoro è completato quando il comportamento bloccante è spiegato e un fix mirato o una limitazione documentata è coperto da un test di regressione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hello,
I'm new to both rust and ssh2-rs, so excuse me if I'm just doing something stupid.
Here's simplest case that I can't get working:
use std::net::TcpStream;
use ssh2::Session;
use std::io::Read;
fn main() {
let remote_user = "john";
let remote_addr = "tester.example.com:22";
let remote_cmd = "echo $SSH_AUTH_SOCK; ssh-add -l";
let stream = TcpStream::connect(&remote_addr).unwrap();
let mut sess = Session::new().unwrap();
sess.set_tcp_stream(stream);
sess.handshake().unwrap();
sess.userauth_agent(remote_user).unwrap();
let mut channel = sess.channel_session().unwrap();
channel.handle_extended_data(ssh2::ExtendedData::Merge).unwrap();
// channel.request_auth_agent_forwarding().unwrap();
channel.exec(remote_cmd).unwrap();
let mut out = String::new();
channel.read_to_string(&mut out).unwrap();
channel.close().unwrap();
channel.wait_close().unwrap();
let _exit_status = channel.exit_status().unwrap();
println!("{}", out);
}
It works as expected if there's no request_auth_agent_forwarding():
Could not open a connection to your authentication agent.
But if I start agent forwarding it just hangs there. If i remove the ssh-add part and leave only the echo I see the SSH_AUTH_SCOKET is set up ok.
I think the problem is that ssh-agent connection coming back from server to client somehow messes with my read_to_string(). I guess the local agent is supposed to write() back to server at this moment and that's why my read would block.
Any ideas how to go about this?
- Lingua principale
- Rust
- Stelle
- 571
- Fork
- 166
- Merge medio
- 1g 18h
- PR unite (30g)
- 5
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rust-lang/ssh2-rs
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
enhancement help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
Tutte le issue di rust-lang/ssh2-rs
Issue simili
-
good first issue help wanted r-docs
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
servo/rust-smallvec#824 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 1 giorno
-
priority middle
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
KATO-Hiro/AtCoderClans#12940 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 1 giorno
-
o8 next debug build aborts on Glass to Dark appearance switch (nil identifier messaged before check)Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
hurttlocker/o8#5112 ·