接続先のサーバーにローカルで作成した公開鍵を設置する方法が一般的な方法ですが、毎回鍵を作り直す手間があります。
そこで、今回はサーバー上の秘密鍵をローカルに転送し、利用することにしました。
鍵の作成
下記の手順で鍵を作成します。
# cd .ssh
# ssh-keygen -t rsa
ここまでで、id_rsaとid_rsa.pubというファイルが作成されます。
id_rsaは、秘密鍵になります。
id_rsa.pubは、公開鍵になります。
認証鍵ファイルの作成
先ほど作成した公開鍵を認証時に使われるファイルに追記します。
cat id_rsa.pub >> authorized_keys
authorized_keysのパーミッションは755に設定してください。
秘密鍵の設定
次に秘密鍵(id_rsa)をローカルの.ssh以下に転送してください。
デフォルトでは、id_rsaというファイルを読み込んでくれます。
接続ホスト別の設定
sshの接続ポートがホスト毎に異なる場合などがあります。
この時に便利なのがアカウント毎に作成することがssh_config(man ssh_configで詳細は出ます)になります。
今回、設定した内容は下記の通りです。
Host xxxx
HostName xxxx.net
Port pppp
User user
IdentityFile ~/.ssh/id_rsa.xxxx
HostNameには、接続する先の正式なホスト名になります。
Hostは、HostNameのエイリアスになりますので、コマンド「ssh xxxx」はHostNameに接続することになります。
Portは、接続のポート番号になります。デフォルトは、22番ポートになっています。
IdentityFileは、認証時に利用する鍵を指定しています。