monkeysphere para gnupg 2.1 mudança de fluxo de trabalho

3

Então, como muitas pessoas, eu estava usando minha chave GPG para autenticação SSH com a ajuda de monkeysphere , para que eu pudesse carregar meu chave privada para o agente com o comando monkeysphere s e esteja livre para se conectar em qualquer lugar que eu desejar sem senhas.

Atualizei minha caixa do Arch Linux recentemente e descobri que o GnuPG 2.0 foi substituído pelo GnuPG 2.1, que é incompatível com o monkeysphere. Supostamente, o GPG 2.1 trouxe algumas melhorias para gpg-agent que tornaram a monkeysphere desnecessária, mas estou tendo dificuldades em encontrar instruções claras sobre como usá-las.

Alguém poderia explicar como configurar o GPG 2.1 para conseguir a mesma coisa, o que era possível com o monkeysphere (carregar uma chave privada na memória uma vez e usá-la em cada próxima conexão)?

    
por Łukasz Zaroda 25.11.2014 / 19:39

2 respostas

1

Acho que você está procurando esse bit que é abordado na documentação do ssh.com, no Seção de Chaves PGP .

trecho

SSH Secure Shell only supports the OpenPGP standard and the PGP programs conforming to it. GnuPG is used in the following instructions. If you use PGP, the only difference is that the file extension is pgp instead of GnuPGP's gpg.

To make sure that user public-key authentication is enabled, the AllowedAuthentications field both in the /etc/ssh2/sshd2_config file on Remote and the /etc/ssh2/ssh2_config file on Local should contain the word "publickey":

  AllowedAuthentications   publickey

Other authentication methods can be listed in the configuration file as well. Copy your private key ring (secring.gpg) to the ~/.ssh2 directory on Local. Create an identification file in your ~/.ssh2 directory on Local if you do not already have one. Add the following lines to the identification file:

  PgpSecretKeyFile    <filename of the user's private key ring>
  IdPgpKeyName        <name of the OpenPGP key in PgpSecretKeyFile>
  IdPgpKeyFingerprint <fingerprint of OpenPGP key in PgpSecretKeyFile>
  IdPgpKeyId          <id of the OpenPGP key in PgpSecretKeyFile>

Copy your public-key ring (pubring.gpg) to the ~/.ssh2 directory on Remote

  scp2 pubring.gpg user@remote_host:.ssh2

Create an authorization file in your ~/.ssh2 directory on Remote. Add the following lines to the authorization file:

  PgpPublicKeyFile   <filename of the user's public-key ring>
  PgpKeyName         <name of the OpenPGP key>
  PgpKeyFingerprint  <fingerprint the OpenPGP key>
  PgpKeyId           <id of the OpenPGP key>

Now you should be able to login to Remote from Local using Secure Shell. Try to login:

  Local>ssh Remote
  Passphrase for pgp key "user (comment) <user@Local>":

After you have entered the passphrase of your PGP key, a Secure Shell connection will be established.

Referências

por 26.11.2014 / 16:00
0
  1. Diga ao seu gpg-agent para ativar seu suporte para o protocolo ssh-agent. Você faz isso iniciando-o com --enable-ssh-support ou colocando

    enable-ssh-support
    

    em ~/.gnupg/gpg-agent.conf .

  2. Informe ao agente qual chave (ou chaves) você deseja usar para autenticação ssh (observe que a chave deve ter o recurso A (Authenticate)). Você precisará encontrar o keygrip da sua chave. Para fazer isso, liste as chaves com --with-keygrip , por exemplo:

    gpg2 --with-keygrip -k <your email>
    

    Cole o keygrip (ou keygrips para várias chaves, um por linha) em ~/.gnupg/sshcontrol .

  3. A partir do 2.1, o agente usa caminhos estáticos para sockets aos quais escuta. Basta apontar o ssh para o soquete correto, adicionando:

    export SSH_AUTH_SOCK="$HOME/.gnupg/S.gpg-agent.ssh"
    

    para algum arquivo de inicialização ( ~/.xsession , ~/.bashrc ou o que for apropriado).

por 07.07.2015 / 21:18