Respuestas:
Para generar un par de claves SSH sin que se le solicite una frase de contraseña, puede hacer lo siguiente:
$ ssh-keygen -f id_rsa -t rsa -N ''
ssh-keygen: option requires an argument -- N
" :(
dzdo
comando delante de él, así que tuve que escribir:dzdo -i -u target_user ssh-keygen -f id_rsa -t rsa -N "''"
-N ''
es significativo. Cuando agregué el espacio tuvo éxito!
Si necesita hacer esto desde PowerShell en Windows use:
ssh-keygen -f $Name -t rsa -N '""'
Tenga en cuenta que también debe asegurarse de que el directorio git bin esté en su ruta:
$sshPath = "<path>\git\bin\"
$env:path += ";$sshPath"
Luego, para usarlo en PoshGit es solo:
Add-SshKey "<path>\.shh\KeyFilename"
git\usr\bin
es el directorio correcto.
ssh-keygen -f $Name -t rsq -N '""'
.
'""'
'""'
Es la única variante que funcionó para mí.
Solo una corrección para responder 2 ... descubrí en mi sistema OL y RHEL que el nombre del archivo debería ser id_rsa no id.rsa.
Entonces, en un sistema OL o RHEL, el comando sería:
$ ssh-keygen -f id_rsa -t rsa -N ''
id_rsa
es el nombre de archivo predeterminado para una clave RSA, por lo que si desea mantener el valor predeterminado, no está obligado a utilizar explícitamente la -f
opción.
-f
opción es para que pueda ejecutar esto en un script. Puede reafirmar el valor predeterminado para deshabilitar la solicitud posterior.
Qué pasa :
ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -N ''
Como se señala en man ssh-keygen
:
SYNOPSIS
ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1] [-N new_passphrase] [-C comment] [-f output_keyfile]
(...)
-q Silence ssh-keygen.
(es decir, con openssh-client
el paquete en Debian 9.4 estiramiento: OpenSSH_6.7p1 Debian-5+deb8u4
)
Necesitaba automatizar en un script bash el comando ssh-keygen y la respuesta final que me funciona bien:
echo -e "\n" | ssh-keygen -N "" &> /dev/null
El comando echo con -e interpreta "\ n" como una tecla Intro, pero no funciona con la frase de contraseña. Luego, utilizando la opción -N "" (frase de contraseña vacía) la contraseña estará vacía y no pedirá nada. &> / dev / null enviará 'stdout' y 'stderr' a / dev / null para que no se imprima nada a través de la pantalla.
$ printf '\n' | ssh-keygen -N ''