Terminal
$ ssh-keygen -t rsa -C comment -N passphrase -f filename
rsaの鍵にcommentというコメントを付け、パスフレーズにpassphraseを指定してfilename
(秘密鍵)とfilename.pub
(公開鍵)を生成する。(パスフレーズは5文字以上必要)
これなら対話的に聞いてくることが無いので、何かしら自動化したいとき(鍵を自動化で生成することなんてあるのか?)にはいいかも。あと対話的に聞いてこられるのが面倒なときとか。
ただ、これだと履歴にパスフレーズが残ってしまうので、
Terminal
$ history -c
などで履歴を消すか、
Terminal
$ ssh-keygen -t rsa -C comment -f filename
で対話的にパスフレーズを指定するとか。
パスフレーズを毎回聞かれるのが面倒だ、という人はssh-agent
とか使うと良いかも。
自分の.bashrc
には以下のように書いてあって、一度パスフレーズを聞かれるとターミナル(ターミナルでなくてtmux
だったかなあ?)が起動している限りは二度目以降パスフレーズを聞かれなくなる。(たぶん・きっと・確か)
でもOS Xの場合はキーチェーンが標準でがんばってくれた気がするので、必要なかった気がする。UbuntuとかDebianとか使うときにはとても有用だった気がするけど、最近使ってないのでわからない。
.bashrc
# ssh-agent {{{
ssh_agent=/usr/bin/ssh-agent
ssh_agent_info=$HOME/.ssh-agent-info
source "$ssh_agent_info" 2>/dev/null
ssh-add -l >/dev/null 2>&1
if [ "$?" -eq 2 -a -x "$ssh_agent" -a -z "$SSH_AGENT_PID" ]
then
eval "$ssh_agent | grep -v 'echo' > $ssh_agent_info" 2>/dev/null
source "$ssh_agent_info" 2>/dev/null
fi
# }}}