Docker y claves cifradas
1 respuesta
- votos
-
- 2019-02-03
Sí,puedeejecutartezos-signerpor separado delbinario de origen y luego dejar que se conecte atezos-node que seejecutaen el contenedor docker. Asíes comopuede hacerlo.
Enel servidortezos-signer,ejecute los siguientes 3 comandos desdeel directorio donde se descargaelbinariotezos-signer:
- tezos-signergen keys alice
- cat ~/.tezos-signer/public_key_hashs
Estogenerará algo comoesto: [{"name": "alice","value": "tz1abc ..."}]
Copieel hash de su clavepública que separece a "tz1abc ..." arriba.
- tezos-signeriniciar socket signer -a home-ip
donde home-ipes la dirección IP de su servidor donde seejecutatezos-signer. Por defecto usaelpuerto 7732
NOTA: El comando anterior solicitará la contraseña de su clave cifradaparainiciarel demonio delfirmante. Debemantener a su demonioen funcionamientopara quefuncioneelfirmante remoto. Por lo que se recomiendaejecutarlo como servicioen segundoplano. Recomiendo usar tmux para hacereso.
Ahoraen el servidor donde seestáejecutando su Docker,ejecute los siguientes comandos:
1) ./mainnet.sh clienteimport clave secreta alicetcp://home-ip: 7732/tz1abc ...
donde
home-ipeselmismo que se utilizóen elpunto 3 anterior
tz1abc ...eselmismo hash de clavepública utilizadoen elpunto 2 anterior
El comando anteriorimportará la clavepública del servidor de canto,pero la claveprivada aúnpermaneceen el servidor defirma. Si verificael archivo de clavesprivadas almacenadoen el contenedor de la ventana acoplable,encontraráen lugar de la claveprivada,este valor se almacenaría [{"name": "alice", "valor": "tcp://home-ip: 7732/tz1abc ...."}]
Bakerejecutándoseen un contenedor obtendrá automáticamente latransacciónfirmada desdeel servidor defirmas usandoel valor anterior al contactar al servidor defirmas dondetezos-singer deamon debeestaren estado deejecución.
INFO: Para verificar las clavesprivadas almacenadasen el contenedor de la ventana acoplable,useel siguienteproceso:
//Paraingresar almodo shellen el contenedor
- dockerexec -itmainnet_node_1/bin/sh
//Paraingresar al directorio donde semantienen las clavesen el contenedor docker
cd/var/run/tezos/client/
claves_secretas delgato
Yes you can run tezos-signer separately from source binary and then let it connect to tezos-node running in docker container. This is how you can do it.
On tezos-signer server run following 3 commands from directory where tezos-signer binary is downloaded:
- tezos-signer gen keys alice
- cat ~/.tezos-signer/public_key_hashs
This will output something like this: [ { "name": "alice", "value": "tz1abc..." } ]
Copy your public key hash which looks like "tz1abc..." above.
- tezos-signer launch socket signer -a home-ip
where home-ip is IP address of your server where tezos-signer is running. By default it uses port 7732
NOTE: Above command will prompt for password for your encrypted key, to start the signer deamon. You need to keep your deamon running in order for remote signer to work. So it is recommended to run it as background service. I recommend using tmux to do that.
Now on server where your docker is running, run following commands:
1) ./mainnet.sh client import secret key alice tcp://home-ip:7732/tz1abc...
where
home-ip is same as used in point 3 above
tz1abc... is same public key hash used in point 2 above
Above command will import the public key from singing server, but private key still remains on signing server. If you check the private keys file stored in docker container you'll find instead of private key this value would be store [{ "name": "alice", "value": "tcp://home-ip:7732/tz1abc...." }]
Baker running in container will automatically get the transaction signed from signing server using the above value by contacting the signing server where tezos-singer deamon must be in running state.
INFO: To check private keys stored in docker container use below process:
// To enter the shell mode in container
- docker exec -it mainnet_node_1 /bin/sh
// To enter the directory where keys are maintained in docker container
cd /var/run/tezos/client/
cat secret_keys
-
Pregunta de seguimiento: ¿Cuánto recurso consumiríael demoniofirmante?Estoy considerandoejecutarloen una computadoraportátil (batería de respaldo) con libromayor.¿Sepregunta quétan robustopuede ser unportátil ...?Followup question: How much resource would the signer daemon consume? I'm considering running it on a laptop (battery backup) with ledger. Wondering how beefy a laptop to get...?
- 0
- 2019-02-03
- asbjornenge
-
@asbjornenge:probablemente seabueno hacer supregunta de seguimiento como unanuevapregunta.Siéntase libre de hacer referencia aeste si lonecesita.@asbjornenge : probably good to ask your followup question as a new question. Feel free to reference to this one if you need to.
- 0
- 2019-02-03
- Ezy
-
El demonio defirmante @asbjornengeno debería consumirgranparte de sus recursos,ya quetodo lo que haceesfirmar lastransacciones apedido.Entonces,sitodo lo que deseaesejecutar un demonio defirmanteen él,un soloprocesadorbásico,2GB de RAM,60GB deespacioen discofuncionaría.@asbjornenge signer daemon should not consume much of your resources as all it does is sign the transactions on request. So if all you want is to run a signer daemon on it, a basic single processor, 2GB RAM, 60GB disk space would work.
- 2
- 2019-02-04
- Sachin Tomar
-
Claro,gracias.Dichoesto,¿funcionaesto con lanueva actualización lanzada hace unos días?Noto quemainnet.sh yano se comporta (almenosparamí).Clear, thanks. That said, does this work with the new update pushed out a few days ago? I notice that mainnet.sh is no longer behaving (at least for me).
- 0
- 2019-02-07
- nurikabe
-
Noencuentronadamalo con lanueva actualización.Mi configuraciónestáfuncionandobien.¿Puedeelaborar suproblemaen unanuevapregunta sitodavíatiene algúnproblema?I don't find anything wrong with the new update. My setup is working fine. Can you elaborate your problem in a new question if you are still facing any problem?
- 0
- 2019-02-12
- Sachin Tomar
¿Existe unaforma recomendada de utilizarel secuencia de comandos de administración deimágenes de Docker con claves cifradas (protegidas con contraseña)?
El scriptparecefuncionarbien sinoprotejomis claves;peropara las clavesprotegidas,noparece haber unaforma de que Docker vuelva a solicitar una contraseña a la línea de comandos.
¿Podríaejecutar
tezos-signer
por separado y hacer que los contenedores depanadero yendosante hablen deeso?