Nei commenti OP ha separato la sua domanda originaria in due domande diverse, la prima delle quali ha già ricevuto una risposta, come indicato nei commenti.
Domanda 1:
can client public key be used to authenticate server
La risposta è no. (Vedi, git usa le chiavi utente ssh o le chiavi di distribuzione del repository per la crittografia? ).
Domanda 2:
is there any harm in being promiscuous with your authentication attempts (e.g., attempting to authenticate at a known-but-potentially-unfriendly server using the client credentials intended for another server)?
Harm può significare varie cose. Ma, penso che OP sta chiedendo se semplicemente provando ad autenticare usando le chiavi ssh su un server canaglia, in qualche modo, le informazioni sulla sua chiave privata (memorizzate solo sul suo computer client) possano fuoriuscire.
Con questa definizione di "danno" la risposta è no.
Quando si tenta di autenticare su un server canaglia, si riceverà la chiave pubblica del server (nel suo certificato). Questo ti permetterà di autenticare il server e vedrai che è canaglia e non si connette. Quindi, questo non espone la tua chiave privata in alcun modo.
Ma per quanto riguarda il caso in cui si tenta di connettersi al server canaglia? Supponiamo che il server canaglia abbia la tua chiave pubblica. In questo caso non perdi ancora la tua chiave privata tentando di connetterti, dato che è la tua (ssh) chiave pubblica che viene usata dal server canaglia per autenticare tu . Il server canaglia può inviare tu una sfida crittografata con la tua chiave pubblica. Quindi puoi decodificarlo con la tua chiave privata e dimostrare che sei chi dici di essere. Invia solo la sfida decrittografata, non invii la tua chiave privata o alcuna informazione sulla tua chiave privata. E questo non dovrebbe far trapelare alcuna informazione sulla tua chiave privata (con l'avvertenza che sto assumendo che la moderna crittografia a chiave pubblica come RSA e / o ssh sia / non sia rotta).
Vorrei anche ribadire il fatto che sto assumendo che la domanda sia diretta solo ai tentativi di connessione. Non sto considerando il fatto che un server canaglia possa spoofare un utente / passare il login e raccogliere le credenziali in quel modo, o qualche altro comportamento malevolo come la registrazione del tuo IP per un successivo attacco di ritorsione, ecc.