walkingmask’s development log

IT系の情報などを適当に書いていきます

MENU

リモートホストへ公開鍵認証でログイン

ここではVirtual Box上にインストールしたFedora 23 serverへ公開鍵認証でログインするための設定をlog.下のページの続き.
walkingmask.hatenablog.com

環境

Mac OS X El Capitan (10.11.1)
Fedora 23 server
VirtualBox 5.0.8

リモートホストsshできるかを確認

ssh ユーザ名@ホスト名

のようにローカルマシン(Mac)のターミナル上でコマンドを実行し,リモートホストへパスワード認証できるか確認.Fedoraのrootユーザなら

ssh root@192.168.56.101

ローカルで秘密鍵と公開鍵を作成

公開鍵認証を行うための鍵を作成する.以下の操作は全てローカルマシン上で.
以下のコマンドを実行していく.

mkdir ~/.ssh
chmod 700 .ssh
cd .ssh
ssh-keygen

すると次のように聞かれるので入力していく.ここでは試しに鍵の名前をtest_rsaパスフレーズをtest testで作成する.これらは任意に変更可能.

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/test/.ssh/id_rsa): test_rsa
Enter passphrase (empty for no passphrase): test test
Enter same passphrase again: test test

何か変なAAみたいなのが出力されたら成功.試しに以下のコマンドを実行してtest_rsaがあることを確認する.

ls ~/.ssh

公開鍵をリモートホストに登録

先ほど作成した鍵のうち公開鍵(.pub)の方をsshとscpコマンドを使ってリモートホストに登録する.

scp ~/.ssh/公開鍵 ユーザ名@ホスト名:

のようにローカルでコマンドを実行するとリモート上に公開鍵をコピーすることができる.Fedoraのrootユーザに対してtest_rsaを送るなら

scp ~/.ssh/test_rsa.pub root@192.168.56.101:

次に,sshでログインしてリモートホスト上で鍵の登録を行う.以下の操作は全てリモート上で.

mkdir .ssh
chmod 700 .ssh
cd .ssh
touch authorized_keys
chmod 600 authorized_keys
cat ~/test_rsa.pub >>~/.ssh/authorized_keys
rm ~/test_rsa.pub
cat authorized_keys

これでauthorized_keysに何かごちゃごちゃ書いてあれば,リモートホスト上での鍵の登録が完了したはず.

ローカルマシンからsshで公開鍵認証

ローカルマシンのターミナルから以下のコマンドを実行する.

ssh -i ~/.ssh/test_rsa ユーザ名@ホスト名

Fedoraのrootになら

ssh -i ~/.ssh/test_rsa root名@192.168.56.101

多分パスワードを聞かれるということは公開鍵認証に失敗している.以下のコマンドを実行.

vi /etc/ssh/sshd_config

下記の3点の#を消して保存.設定を変更する.

#Protocol 2

#RSAAuthentication yes
#PublickeyAuthentication yes

これでもう一度ssh -i〜すれば成功するはず.パスフレーズを聞かれるので入力する.その他,セキュアな設定などについてはググる

ssh configに設定を書いてsshコマンドを簡略化

以下のコマンドを実行

vi ~/.ssh/config

下記のような設定を書く.

ForwardAgent yes
Host 適当な名前
    HostName ホスト名
    User ユーザ名
    IdentityFile 秘密鍵のある場所

Fedoraのrootの場合

ForwardAgent yes
Host fedora
    HostName 192.168.56.101
    User root
    IdentityFile ~/.ssh/test_rsa

以降は ssh ホスト名だけでログインできるはず.