秘密鍵を用いてサーバにSSH接続する方法(クライアントOSとしてUNIX系を使用している方向け)
UNIX系のOSユーザ向けに秘密鍵を用いてサーバにSSH接続する方法を紹介します。
秘密鍵及び公開鍵のペアの作成
クライアント側で以下のコマンドを実行します。
ssh-keygen
(ssh-keygenコマンドにはオプションが存在しますが、とりあえずオプション無しでも構わないと思います。)
Enter file in which to save the key (/home/ripper/.ssh/id_rsa): /home/ripper/.ssh/hoge_rsa
鍵の保存場所をデフォルトから変更する場合は入力します。
Enter passphrase (empty for no passphrase): Enter same passphrase again:
パスフレーズを設定する場合は入力します。
パスフレーズを入力する事で、認証時にパスフレーズが必要となり、秘密鍵を盗まれてしまった場合の対策になります。
(といっても、鍵を盗まれる=ローカルでのパスフレーズの解析が可能という事なので、ある程度の長さに設定しないとあまり意味は無いです。)
さて、以上で秘密鍵(例では hoge_rsa)と公開鍵(例では hoge_rsa.pub)が作成されますが、秘密鍵のパーミッションを変更しておく必要があるので、以下のコマンドで秘密鍵のパーミッションを変更します。
chmod 600 ~/.ssh/hoge_rsa
サーバ側の設定
サーバに公開鍵認証したいユーザでログインして、以下のコマンドを実行し、ホームディレクトリに.sshディレクトリを作成します。
mkdir ~/.ssh
以下のコマンドを実行し、~/.sshディレクトリのパーミッションの変更を行います。
chmod 700 ~/.ssh
サーバ側のディレクトリ ~/.sshにファイル名 authorized_keys として公開鍵(例では hoge_rsa.pub)を転送します。
更に、以下のコマンドを実行し、公開鍵のパーミッションの変更を行います。
chmod 600 .ssh/authorized_keys
クライアント側の設定
~/.ssh/config に以下のような感じに記述します。
Host 任意の設定名 HostName 接続先サーバのIPまたはホスト名 Port ポート番号 IdentityFile 秘密鍵の場所
例:
Host hogeserver HostName 192.168.1.86 Port 22 IdentityFile /home/ripper/.ssh/hoge_rsa
サーバにSSH接続する場合は以下のコマンドで接続できます。
ssh ユーザ名@configでHOSTに指定した設定名
.ssh/config には他にも様々な設定がありますが、詳しくはぐぐって下さい。
スポンサード リンク