spesso devo scaricare un file che non è direttamente accessibile tramite la prima connessione SSH. Ad esempio, sono su una macchina Windows e voglio accedere a un'altra macchina accessibile solo da lan. Ciò significa che devo prima connettermi a una macchina intermedia e SSH a quella successiva.
Sarebbe facile usare pscp per ottenere il file, se fosse disponibile per la prima macchina. È possibile utilizzare il port forwarding SSH in questo scenario?
Risposta accettata:
Sì, in questo caso è possibile utilizzare il port forwarding SSH, ma è anche possibile ricevere avvisi su chiavi host non valide o errate quando si tenta di farlo. Alcuni client SSH come OpenSSH tengono traccia delle chiavi host SSH per dominio o solo IP e non includono il numero di porta con esso. PuTTY sembra registrare il numero di porta con la chiave host e non dovrebbe soffrire di questo problema fintanto che sei coerente con i numeri di porta che usi per ciascun host. Consiglierei di aggiungere i port forwarding a una sessione salvata in PuTTY. È inoltre possibile salvare le sessioni aggiuntive per i vari host remoti come sessioni salvate e utilizzarle con pscp/psftp. Puoi iniziare con qualsiasi porta ad alto numero per l'inoltro come 2220 e aumentare di uno da lì per ogni host che devi inoltrare attraverso un host intermedio. Aggiungi alla sessione salvata per intermediate port forwarding locale come la porta 2220 e destinazione remote1:22 e porta 2221 con destinazione remote2:22 per host remoti remote1 e remote2 Quindi crea sessioni per remote1 con destinazione localhost e porta SSH 2220 e una sessione per remote2 con destinazione localhost e porta SSH 2221 . Per usare sessioni con pcsp/psftp usa @session-name per l'host.
Il problema si verifica quando hai in qualche modo associato una chiave host SSH a localhost e tenti di connetterti a una porta locale che viene inoltrata a un computer diverso. Con OpenSSH, ho risolto questo problema utilizzando HostKeyAlias . Ho aggiunto voci al mio ~/.ssh/config così:
Host intermediate
HostName intermediate.example.org
LocalForward 2220 remote1.example.org:22
LocalForward 2222 remote2.example.org:22
Host remote1
HostName localhost
Port 2220
HostKeyAlias remote1.example.org
Host remote2
HostName localhost
Port 2221
HostKeyAlias remote2.example.org
La mia soluzione preferita, tuttavia, è stata quando ho implementato IPv6 sulla mia rete domestica e di lavoro e non ho più dovuto preoccuparmi di connettermi a un server intermedio prima di raggiungere la mia destinazione finale.
Relazionato:Linux - Qualche serio rischio se Mint 17 pensa che sia Ubuntu?