スキップしてメイン コンテンツに移動

公開鍵でログインできるSSHユーザーを作る

rsyncしたりchefを使ってサーバーのコントロールを一括して行ったりする場合には公開鍵を使ってパスワードなしにログインできるユーザーを作る訳ですが、そうそうやるわけでもなく毎回調べるので、いい加減まとめておきます。
対象ホストに自動ログインできるまでの最短距離をまとめました。慣れれば3分くらいでできる作業です。




前提

  • ログイン先のサーバーのホスト名をexample1.com、ログイン元のホスト名をexample2.jpとする。
  • example1.comにはystreamというユーザーでログインする。
  • 公開鍵があればパスワードは必要なくログインできるようにする。

ログイン先のサーバーでystreamユーザーを作成、パスワード設定。
#rootで作業
useradd ystream
passwd ystream    #パスワードを2回入力

SSHの設定確認
ファイルは/etc/ssh/sshd_config
公開鍵認証に関する設定は3つ
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

初めて設定する場合はコメントアウトされているのでアンコメントする。
コンフィグファイルの確認。
/usr/sbin/sshd -t
# 特に何も表示されなければおk

SSHを再起動。

ログイン元のサーバー(サーバー名:example2.jp)からパスワードを使ってystreamユーザーでログインできるか確認
ssh ystream@example1.com

ログインが成功したら、そのまま鍵を生成する。
cd ~/.ssh    #.sshが存在しない場合はmkdirする。
ssh-keygen -t rsa    #作成時にパスフレーズを聞かれるが何も入力せずエンター
cat id_rsa.pub >> authorized_keys
rm id_rsa.pub

#./sshのパーミッションは0700とかにしておく
chmod 0700 ~/.ssh/
#./ssh/*のパーミッションは0600にしておく
chmod 0600 ~/./ssh/*

秘密鍵(id_rsa)をexample2.jpに持ってくる。
秘密鍵はexample1.comにログインする可能性のあるユーザーのホームディレクトリの.sshディレクトリのみ配置するようにする。

持ってくる方法
  • 物理メディアにコピーして移動(ネットワークに上げない) → これが一番手堅い。
  • SCP、SSHのコンソール上でコピペ → example1.comがデータセンターなど手が届かないところにある場合。
  • FTPでアップロード → もうIT業界からいなくなった方がいい。

移動後、秘密鍵を秘密の場所に隠す
だいたいはログイン時に利用するユーザーの~/.ssh/以下。複数の鍵を扱う事もあるのでサーバーが分かるようにリネーム。
mv id_rsa rsa_ystream_example1.com

#./sshのパーミッションは0700とかにしておく
chmod 0700 ~/.ssh/
#./ssh/*のパーミッションは0600にしておく
chmod 0600 ~/./ssh/*

#ちなみに秘密鍵のパーミッションがおかしいと以下の様な表示が出る。
#出たので載せておく(笑)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

example2.jpから秘密鍵を使ってログインしてみる
ssh -i ~/.ssh/rsa_ystream_example1.com ystream@example1.com
Last login: Wed Feb 16 23:14:17 2014 from example2.jp
[ystream@example1 ~]$ 

成功。


コメント

このブログの人気の投稿

[VB.NET]オレオレ証明書でSSL通信するための短絡的な解決法

VB.NETソフトウェアでサーバーと通信することはよくある事だと思いますが、最近はHTTPを使って明けっ広げに刺しに行くよりHTTPSを使って暗号化してこそこそやった方が時代の流れに即した感じですよね(違うか)。 いちいちテスト環境でSSL証明書を用意するのも面倒だということで、セキュリティ的には全くよろしくない方法で迂回できるので紹介します。

[JS]Canvasでよく使う描画テクまとめ

HTMLで画像をいじくりたい時は、canvasを利用して編集するのは一般的ですが、WindowsストアアプリではHTML+CSS+JSでのアプリ開発ができる事もあって、簡単な画像編集であれば、C#やVBを使うより分かりやすいし資料が多く、C++でDirectXをガリガリ書くよりお手軽。入出力もファイルピッカーを使えば簡単に実装できます。今回は、Windowsのコードではなく、Canvasを利用する時のJavaScriptを使いどきに合わせてまとめていきます。

curl の基本的な使い方 -設定編-

今回のcurl TIPSは、curlをより日常的に使っていくためのHow toです。curlには、数多くのオプションが用意されていて、それらを組み合わせる事で様々な事が楽になるでしょう。サービス監視の自動化などにはまさにcurlの得意分野です。 今回は、curlを更に自分のものにしていくために大事なカスタマイズの部分を解説します。