秘密鍵を用いてサーバに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 には他にも様々な設定がありますが、詳しくはぐぐって下さい。

スポンサード リンク

公開日:2013年09月28日
タグ:, , ,