Come ssh al server web remoto senza usare una password

3

Sono nuovo di OS X.

Come per titolo, ho problemi a connettermi al mio server web tramite SSH. Il mio server accetta chiavi e non usiamo password.
Sono venuto da Windows, e su Windows ho usato PuTTY per connettermi al mio server usando un file .ppk generato usando PuTTYGen.

Sul Mac, ho generato l'utilizzo di ssh-keygen -t rsa -b 2048 e creato un file key.ppk in ~ / .ssh e incollato il contenuto del mio file .ppk in Windows.

Ho anche creato un file di configurazione con i seguenti contenuti ...

Host domain.com
  IdentityFile ~/.ssh/key.ppk
  User username

Quando provo a connettermi, Terminal mi richiede una password (perché?), quindi quando non inserisco nulla e premi ok fallisce con il messaggio

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

Qualsiasi aiuto su ciò che sto facendo male sarà fantastico! Grazie per la lettura e grazie in anticipo per eventuali suggerimenti.

    
posta Clarkey 15.04.2012 - 18:22
fonte

1 risposta

6

Sul riutilizzo del file key.ppk di Windows

Il file PPK è una chiave privata specifica per PuTTY. Non è una chiave privata portatile che funziona con qualsiasi applicazione basata su ssh. Funziona solo con PuTTY. Devi prima convertirlo. Ho trovato alcune istruzioni per convertirlo in una coppia di chiavi pubblica / privata corretta qui . Dovrai farlo dal tuo computer Windows.

Questo ti darà una chiave privata, key.ssh , che funzionerà con ssh sul tuo Mac. Inserisci il file key.ssh nella tua directory ~/.ssh/ . Assicurati che le autorizzazioni siano corrette:

% chmod 400 ~/.ssh/key.ssh

E quindi puoi usarlo con il tuo file ~/.ssh/config in questo modo:

Host domain.com
  IdentityFile ~/.ssh/key.ssh
  User username

Se non hai più accesso al tuo computer Windows dovrai generare una nuova coppia di chiavi pubblica / privata da utilizzare con il tuo server web.

On Generazione di una nuova coppia di chiavi da utilizzare con il tuo Mac

Onestamente, questo è il modo migliore per andare qui.

L'autenticazione senza password con chiavi condivise richiede che entrambe le macchine abbiano una parte delle parti chiave condivise / pubbliche. Ecco una ricetta completa per la configurazione di uno schema di autenticazione della chiave condivisa con due server. Non è proprio specifico per OS X. È specifico per ssh.

Queste istruzioni danno per scontato che host1 sia il tuo Mac e host2 sia il tuo server web.

Genera una chiave condivisa su host1 (la chiave condivisa sarà /Users/you/.ssh/webserver.pub e la chiave privata sarà /Users/you/.ssh/webserver ):

% ssh-keygen -t rsa -b 2048 -f ~/.ssh/webserver
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in webserver.
Your public key has been saved in webserver.pub.
The key fingerprint is:
98:b7:fa:0f:0d:e7:7f:50:cc:9b:b4:57:db:8d:b4:03 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|             o   |
|       o    E * .|
|      o S .  = *=|
|       . *  . B.+|
|        o o  . o |
|       . . .  .  |
|      ..... ..   |
+-----------------+

Nota: non ho inserito una password per la chiave perché non voglio usare una password quando uso l'uso.

Ora devi aggiungere la chiave pubblica ~/.ssh/webserver.pub al file ~user/.ssh/authorized_keys su host2 , il tuo server web.

% ssh user@host2 'mkdir ~/.ssh;echo ''cat ~/.ssh/webserver.pub'' >> ~/.ssh/authorized_keys'

Affinché questo funzioni sarà necessario l'accesso tramite password all'host remoto. Se non ce l'hai, puoi dare ~/.ssh/webserver.pub a qualcuno che non ha accesso alla casella e chiedere loro di aggiungerlo al file authorized_keys per te. Oppure esegui dal tuo computer Windows in cui hai ancora accesso.

Ora assicurati che la tua chiave privata sia sicura sul tuo Mac:

% chmod 400 ~/.ssh/webserver*

ssh può ottenere lamentele se le tue coppie di chiavi private / pubbliche sono leggibili o scrivibili.

Infine, puoi aggiungere quanto segue al tuo file ~/.ssh/config per invocare la combinazione di tasti corretta quando tenti di ssh sul tuo server web:

Host domain.com
  IdentityFile ~/.ssh/webserver
  User username

Questo ti permetterà di ottenere l'autenticazione basata su keypair senza password.

    
risposta data 15.04.2012 - 18:53
fonte

Leggi altre domande sui tag