Respostas:
Para gerar um par de chaves SSH sem ser solicitada uma senha, você pode fazer o seguinte:
$ ssh-keygen -f id_rsa -t rsa -N ''
ssh-keygen: option requires an argument -- N
" :(
dzdo
comando na frente dele, então tive que escrever:dzdo -i -u target_user ssh-keygen -f id_rsa -t rsa -N "''"
-N ''
é significativo. Quando adicionei o espaço, ele conseguiu!
Se você precisar fazer isso no PowerShell no Windows, use:
ssh-keygen -f $Name -t rsa -N '""'
note que você também precisa garantir que o diretório git bin esteja no seu caminho:
$sshPath = "<path>\git\bin\"
$env:path += ";$sshPath"
Então, para usá-lo no PoshGit, basta:
Add-SshKey "<path>\.shh\KeyFilename"
git\usr\bin
é o dir correto.
ssh-keygen -f $Name -t rsq -N '""'
.
'""'
'""'
é a única variante que funcionou para mim.
Apenas uma correção para responder 2 ... Eu descobri no meu sistema OL e RHEL o nome do arquivo deve ser id_rsa, não id.rsa.
Portanto, em um sistema OL ou RHEL, o comando seria:
$ ssh-keygen -f id_rsa -t rsa -N ''
id_rsa
é o nome do arquivo padrão para uma chave RSA; portanto, se você deseja manter o padrão, não é obrigado a usar explicitamente a -f
opção.
-f
opção é para que você possa executar isso em um script. Você pode apenas reafirmar o padrão para desativar o prompt subseqüente.
A respeito :
ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -N ''
Conforme observado em 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.
(isto é, com openssh-client
pacote no Debian 9.4 trecho: OpenSSH_6.7p1 Debian-5+deb8u4
)
Eu precisava automatizar em um script bash o comando ssh-keygen e a resposta final que funciona bem para mim:
echo -e "\n" | ssh-keygen -N "" &> /dev/null
O comando echo com -e interpreta "\ n" como uma tecla Enter, mas não funciona com a senha. Em seguida, usando a opção -N "" (senha vazia) a senha ficará vazia e não solicitará nada. &> / dev / null enviará 'stdout' e 'stderr' para / dev / null, para que nada seja impresso na tela.
$ printf '\n' | ssh-keygen -N ''