web-dev-qa-db-ja.com

パスフレーズを要求しないようにssh-keygen -t rsaを自動化します

パスワードなしでssh-keygen -t rsaを自動化する必要があります。つまり、プロンプトで入力します。
どうすればシェルスクリプトからできますか?

151
Tampa

パスフレーズの入力を求められずにSSHキーペアを生成するには、次の操作を実行できます。

$ ssh-keygen -f id_rsa -t rsa -N ''
219
Shamoon

WindowsのPowerShellからこれを行う必要がある場合は、次を使用します。

ssh-keygen -f $Name -t rsa -N '""'

また、git binディレクトリがパスにあることを確認する必要があります。

$sshPath = "<path>\git\bin\"

$env:path += ";$sshPath"

それからPoshGitで使用するには、次のようにします。

Add-SshKey "<path>\.shh\KeyFilename"
24
Daniel Little
$ ssh-keygen -f $HOME/.ssh/id_rsa -t rsa -N ''
18
GMaster

答え2を修正するだけです... OLおよびRHELシステムで、ファイル名がid.rsaではなくid_rsaであることがわかりました。

したがって、OLまたはRHELシステムでは、コマンドは次のようになります。

$ ssh-keygen -f id_rsa -t rsa -N ''
11
ASHU

どうですか:

ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -N ''

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.

(つまり、Debian 9.4 stretchのopenssh-clientパッケージで:OpenSSH_6.7p1 Debian-5+deb8u4

8
Manumie
$ printf '\n' | ssh-keygen -N ''
0
Yang Young

Bashスクリプトでssh-keygenコマンドを自動化し、最終的な回答を私にうまく機能させる必要がありました。

echo -e "\n" | ssh-keygen -N "" &> /dev/null

-eを指定したechoコマンドは、「\ n」をEnterキーとして解釈しますが、パスフレーズでは機能しません。次に、オプション-N ""(空のパスフレーズ)を使用すると、パスワードは空になり、何も要求されません。 &>/dev/nullは「stdout」と「stderr」を/ dev/nullに送信するため、ディスプレイには何も印刷されません。

0
mastyleki