ページ

2012-07-01

サーバに新たなSSH公開鍵を追加する


サーバに接続するのにSSHを使用しているのですが、いつも使っているPCとは別のPCから接続する必要に迫られたので、その時の手順を書きます。




状況としては下の図のような感じです。
サーバが1台に、サーバを操作するクライアントPCが2台。
いつも使っているPCはClient0で、これからサーバに接続できるようにするPCはClient1です。
なお、Client0と1が別のユーザ(サーバ側)の場合はClient0が管理者権限を持っている必要があります。





Client1のPCでSSHの鍵を作成


コマンドラインで、
cd ~/.ssh
ssh-keygen
とやるだけでもいいですが、今後別のサーバに接続することを考えて
ssh-keygen -C hogehoge -f filename
とやる方がいいと思います。
hogehogeには何かコメントを入れられるそうです。何のためかはよくわかりません。
filenameは鍵のファイル名です。


注)
最初に

cd ~/.ssh
としたのは、通常SSHの鍵ファイルは~/.sshディレクトリに作るからです。

移動しない場合は、ssh-keygenを行う際に

-fオプションで

~/.ssh/filename
として下さい。
注終)



ssh-keygenを行った後には.sshディレクトリに、以下の2つのファイルが出来ると思います。
  1. filename.pub
  2. filename
1は公開鍵、2は秘密鍵と呼ばれるものです。
公開鍵を操作したいサーバに登録し、秘密鍵は他の人に見えないように大事に保管します。


公開鍵を管理者に渡す


先ほど作った公開鍵(1.filename.pub)を管理者(Client0)に渡します。
渡し方はメールでもなんでもいいと思いますが、ファイルの内容の文字列をコピーしてメールに貼り付けるのはミスの元なので、公開鍵ファイルごと渡しましょう。


公開鍵をサーバに登録する


公開鍵を受け取ったら、まずは公開鍵をサーバに転送します。
scp
とかを使うと安全だと思います。
scpはSecure copyと言われ、SSHを使用して通信経路を暗号化してファイルの転送を行います。


次にサーバにSSHでログインします。

サーバ上で、
cat filename.pub >> ~/.ssh/authorized_keys
を実行します。
こうすると、authorized_keysファイルに新たに公開鍵が追加されます。

公開鍵を追加する=authorized_keysファイルに新たな行を追加する
ってことらしいです。

間違えて
cat filename.pub > ~/.ssh/authorized_keys
としてしまうと、追加ではなく上書きされてしまうので気をつけて下さい。


注)
環境によってはauthorized_keysファイルじゃない場合があります。
sshd_configで

AuthorizedKeysFile .ssh/authorized_keys
となっていればOKです。
注終)


接続の確認(Client1)


鍵の登録が完了したら、Client1からサーバに接続できることを確認して下さい。

コマンドとしては
ssh -i 秘密鍵ファイル名 -p ポート番号 user@接続先
です。

接続できればOKです。


補足


登録の際に
ssh-copy-id
というコマンドを使うともっと簡単に公開鍵の登録を行えます。
但し、sshd-configで
PasswordAuthentication yes
となっている必要があります。
登録を行うときだけyesにするのもありだと思います。

詳しくはググって下さい。
ちなみにWindowsだと入ってなくて、上記のめんどくさい手順で行いました。


0 件のコメント:

コメントを投稿