Entrambe le squadre stanno facendo la stessa cosa
Il team A ha utilizzato ssh-keygen, per creare una coppia di chiavi privata / pubblica,
che ha memorizzato la parte privata su $HOME/.ssh/id_rsa
e ha aggiunto la chiave pubblica al file authorized_keys sul server. Quindi, quando sshing sul server, per impostazione predefinita legge la chiave privata da lì, quindi accede al server senza inserire alcuna password.
Il team B ha chiamato il file in modo diverso (probabilmente utilizzava il parametro -f
) e utilizza -i
ogni volta, altrimenti non lo troverebbe ssh.
In ogni caso, ssh ha bisogno del file della chiave privata (o accede direttamente al file privato o la chiave è già caricata in un agente ssh), solo il punto in cui si trova è diverso. Ci sono alcuni altri nomi di file chiave che tenta di default se esistono, e potresti specificare una posizione diversa su ~/.ssh/config
(anche chiavi diverse per ciascun host se lo desideri!), Quindi non è necessario inserire esplicitamente la chiave nome file per ogni analisi.
(In entrambi i casi, la chiave potrebbe essere protetta con una passphrase, ma nessuno dei team sembra farlo)
Quindi, per rispondere alle tue domande:
What is benefit of using .Pem file?
Stai anche utilizzando il file chiave, è stato appena effettuato l'accesso in modo trasparente, quindi non c'è alcun vantaggio reale in ciò che fanno.
How is it better than the ssh model that we are using?
meglio è un termine soggettivo, ma IMHO è effettivamente meglio che dichiarare esplicitamente la chiave è non richiesto. Non posizionare la chiave nella posizione automatica sarebbe preferibile solo se si desidera utilizzare coppie di chiavi diverse e assicurarsi che non venga utilizzata automaticamente. Ma anche allora, per qualsiasi server a cui sono comunemente connesso, configurerei ssh per scegliere il file chiave corretto.
La corretta configurazione di ssh per la connessione semplifica l'utilizzo di configurazioni complesse, come l'accesso a una macchina interna che salta attraverso un host di bastion intermedi o esegue semplicemente un rsync (che non ha parametro -i
diretto da passare al programma sottostante †)
† Considero molto più pulito fare rsync file server.com:
rispetto a RSYNC_CONNECT_PROG='ssh -i /my/keyfile %H' rsync file server.com:
).