Debian
ssh公開鍵認証
Conoha

ssh接続の基本(公開鍵認証方式)

More than 3 years have passed since last update.

今回は、サーバーへの公開鍵認証方式ssh接続の流れを書きます。(ほぼ備忘録)

目標は複数のサーバーに自由にssh接続できること。

流れは以下にのようになります。


  1. rsaキー作成

  2. id_rsa.pubの受け渡し

  3. id_rsa.pubをAuthorized Keysへ登録

  4. ssh config編集

  5. 使い方


環境

クライアント: OSX 10.10.3 Yosemite

サーバー:Debian8(ConoHa VPS)


/etc/ssh/sshd_config

//サーバーはパスワード認証、公開鍵認証できる状態にしておいてください。

//ファイル内のどこかにある項目
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PasswordAuthentication yes
//総当たりを防止のため、公開鍵認証で接続できる事が確認できしだい変更した方が良いです。
PasswordAuthentication no
//今回はrootで接続する事を確認しますが、終わったらnoに変更した方が良いです。
//(ユーザを新規に作って、そのユーザで操作する。)
PermitRootLogin no


rsaキー作成

まず、クライアントでrsaキーを作ります。

念のため、作った秘密鍵は他のユーザに読まれないように権限を変えてください。


terminal(クライアント)

$ pwd

/Users/"ユーザー名"
$ cd ./.ssh //フォルダが無い場合は作る。
$ ssh-keygen -t rsa
//-中略- 画像参照
$ ls
id_rsa , id_rsa.pub
$ chmod 400 id_rsa //read権限があれば問題ないです。

rsa作成画面

1つの接続に1つのキーを作るため、ファイルの名前は任意のものに変えた方がいいです。

(変えないと上書きされます。)



※追記(2015/8/30)

公開鍵(id_rsa.pub)を複数のサーバで使えば一つの秘密鍵(id_rsa)で全部にログインできます。


id_rsa.pubの受け渡し

scpを使い、先ほど作ったid_rsa.pubをサーバーへと送ります。

送り方はセキュアに渡せればなんでもいいです。("公開"鍵なので平文でもいいですが念のため)

※秘密鍵(id_rsa)を渡さないように注意


terminal(クライアント)

$ pwd

/Users/"ユーザ名"/.ssh
$ scp ./id_rsa.pub root@aaa.bbb.ccc.ddd:/home/"サーバー側のユーザ名"/.ssh/id_rsa.pub


id_rsa.pubをAuthorized Keysへ登録


terminal(サーバー)

$ pwd

/Home/"ユーザ名"/.ssh
$ cat ./id_rsa.pub >> ./authorized_keys //authorized_keysに追記します。
//以後このファイルに公開鍵を追記していけば問題ないです。
$ rm ./id_rsa.pub //いらないので消しておく


ssh config編集


terminal(クライアント)

$ pwd

/Home/"ユーザ名"/.ssh
$ vim config //emacs,nanoお好きなエディタで...
Host Myserver_hoge //任意の名前
HostName aaa.bbb.ccc.ddd //サーバーのipアドレス ipv4/6
port 6022 //ssh用のポート番号
IdentityFile ./id_rsa //先ほど作った秘密鍵のファイル
User hoge //ログインする名前

Host Conoha_root //ConoHaのrootの例
HostName aaa.bbb.ccc.ddd
port 6022
IdentityFile ./id.pem //ConoHaのサーバーを立てた際にDLしたroot用ファイル
User root
//書いておいてなんですが、rootではログインできない用にしておくべきです。(設定は上記の環境を参照)



使い方

毎回 秘密鍵を指定したり、アドレスを打ったりしなくてもいいので便利です。


terminal(クライアント)

$ pwd

/Home/"ユーザ名"/.ssh
$ ssh Myserver_hoge
$ ssh Conoha_root


参考

Debian 8 Jessie : SSHサーバー : SSH 鍵認証 : Server World