Eu preciso automatizar ssh-keygen -t rsa
sem uma senha, ou seja, entrar no prompt.
Como posso fazer isso a partir de um script de shell?
164
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:
note que você também precisa garantir que o diretório git bin esteja no seu caminho:
Então, para usá-lo no PoshGit, basta:
fonte
git\usr\bin
é o dir correto.ssh-keygen -f $Name -t rsq -N '""'
.'""'
'""'
é a única variante que funcionou para mim.fonte
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:
fonte
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 :
Conforme observado em
man ssh-keygen
:(isto é, com
openssh-client
pacote no Debian 9.4 trecho:OpenSSH_6.7p1 Debian-5+deb8u4
)fonte
Eu precisava automatizar em um script bash o comando ssh-keygen e a resposta final que funciona bem para mim:
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.
fonte
fonte