Converti chiave openSSH RSA / chiave putty in chiave gpg [chiusa]

2

Scenario

Due siti di lavoro, sito 1 e sito 2. Due server Linux, server A e server B. Il server A è raggiungibile da entrambi i siti, mentre il server B è raggiungibile solo dal sito 1. Due workstation Windows, una sul sito 1, l'altra sul sito 2.

Sono su Windows nel sito 1, usando PuTTY per connettermi al server A che è impostato solo per l'autenticazione ssh publickey.

Uso gpg-agent con l'impostazione enable-putty-support attivata al posto del pageant per utilizzare una smartcard per l'autenticazione git a $popular_git_site .

La maggior parte delle volte sul sito 1, devo collegarmi in remoto al server B usando NX Client di NoMachine v3.5.x. Da lì, ho bisogno di essere in grado di ssh nel server A usando anche l'autenticazione publickey. Poiché il server B esegue NX Server v3.5.x, l'inoltro di agenti non funziona con NX Client. Pertanto, con la smartcard non disponibile, devo assicurarmi di avere una chiave privata disponibile sul server B.

Pertanto, ho creato una coppia di chiavi ssh RSA protetta da password con sul server B usando

 ssh-keygen -t rsa

La password è verylongandcomplicatedpassword . Quindi, non voglio scriverlo molto.

Ho aggiunto la chiave pubblica .ssh/id_rsa.pub a .ssh/authorized_keys sul server A e sul server B. L'uso di ssh dal server B al server A funziona ora. Vice-versa funziona anche ora.

Problema

Su Windows al sito 1 Ho una configurazione PuTTY impostata sul server B utilizzando l'inoltro dell'agente per la mia smartcard per poter utilizzare git sul server B e autenticarmi con la mia smartcard.

Voglio la stessa cosa per il server A, perché il server B non è raggiungibile dal sito 2, dove lavoro anche a volte. gpg-agent viene avviato come elemento di avvio utilizzando gpg-connect-agent /bye ed è in esecuzione su Windows.

Pertanto, I scp 'd la chiave privata .ssh/id_rsa dal server B sulla mia macchina Windows. L'ho aperto con successo con PuTTYgen e l'ho salvato nel formato PuTTY in C:\Users\name\ssh\id_rsa.ppk .

Ho creato una nuova connessione PuTTY al server A, tipo di connessione SSH .

Connection --> SSH --> Auth -->
    [Check]   Attempt Authentication using Pageant
    [Uncheck] Attempt "keyboard-interactive" auth
    [Check]   Allow agent forwarding
    Private Key File for Authentication: C:\Users\name\ssh\id_rsa.ppk

Questo tipo di opere. Tuttavia, PuTTY stesso - non gpg-agent - mi chiede la password verylongandcomplicatedpassword - ogni volta ! Anche l'inoltro di agenti non funziona in quanto non riesco a passare dal server A al server B senza ridigitare la password dopo aver effettuato correttamente il login da PuTTY.

Penso che PuTTY non sia in grado di aggiungere la chiave a gpg-agent o di comunicare correttamente nonostante enable-putty-support sia attivato nella configurazione gpg-agent e gpg-agent funzioni come un campione per git e agent-forwaring che lavorano per git sul server B nel sito 1.

Cosa ho provato

Pensando che sono estremamente intelligente, ho iniziato a esaminare come convertire il mio .ssh/id_rsa in un formato che posso usare in gpg2 per gpg-agent . Questa ricerca su Google ha prodotto risultati di cazzata per lo più.

Il meglio del quale - perché in realtà si tratta di un modo per convertire la chiave - è qui .

OpenSSH to GnuPG S/MIME

First we need to create a certificate (self-signed) for our ssh key:

openssl req -new -x509 -key ~/.ssh/id_rsa -out ssh-cert.pem

We can now import it in GnuPG

openssl pkcs12 -export -in ssh-certs.pem -inkey ~/.ssh/id_rsa -out ssh-key.p12
gpgsm --import ssh-key.p12

Notice you cannot import/export DSA ssh keys to/from GnuPG

Detto e fatto. Si noti ovvio errore nel secondo comando (ssh-cert s .pem vs ssh-cert.pem). Ho eseguito tutti i comandi openssl sul server B, quindi ho copiato il file ssh-key.p12 su Windows e l'ho importato in gpg. Riesco a vedere la chiave come X.509 in Kleopatra, un frontend grafico per gpg su Windows.

Tuttavia, nonostante ciò, nulla è cambiato e nulla sembra funzionare. Ho provato con le impostazioni di PuTTY originali sopra. Il comportamento è invariato.

Lasciando vuoto il campo Private Key File for Authentication , ricevo il solito messaggio:

PuTTY Fatal Error Disconnected: No supported authentication methods available (server sent: publickey)

Sono ignorante sul motivo per cui questo non funziona. GnuPG S / MIME o X.509 non è quello che mi serve? Ho provato a convertire anche .ssh/id_rsa.pub , pensando che potrebbe essere un problema di chiave pubblica, ma openssl si lamenta che vuole solo convertire le chiavi private.

Cosa non mi serve

Le risposte che suggeriscono

  • Sono stupido per aver voluto questo
  • nessuno mai avrebbe mai bisogno di voler fare questo
  • se non mi piace come funziona ssh / gpg / PuTTY, posso codificare il mio
  • man gpg, man ssh, man ssh_config
posta FRob 17.06.2015 - 03:02
fonte

0 risposte

Leggi altre domande sui tag