« サーバリソース監視ツール「munin」をCentOSで手軽に導入する方法 | Main | WEB上からrsyncを実行する方法 »

October 23, 2010

パスワードなしで他のサーバにSSH接続する方法

サーバ台数が増えてくると、サーバ間移動のたびにパスワード入力が求められるのが手間になってきます。これは何とかしたいところです。そこで今回はパスワードなしで他のサーバにSSH接続する方法を記していきます。

※今回、他のサーバにログインしようとするサーバを「admin」、ログインされるサーバを「web1」、対象ユーザを「user」としておきます。

【admin側の作業】
まずは秘密鍵と公開鍵を作ります。

$ su - user
$ ssh-keygen -t rsa (とりあえず全部Enterで)

すると、秘密鍵(id_rsa)と公開鍵(id.rsa.pub)が生成されるので、公開鍵(id_rsa.pub)だけを「web1」にコピーします。

$ scp /home/user/.ssh/id_rsa.pub user@web1:/home/user/.ssh/id_rsa.pub_admin


【web1側の作業】
adminからコピーされてきた公開鍵を「authorized_keys」というファイルに追加します。

$ su - user
$ cd .ssh
$ cat id_rsa.pub_admin >> authorized_keys
$ chmod 600 authorized_keys

すると、adminからweb1にパスワードなしでSSH接続できるようになります。

[user@admin ~] $ ssh web1

Last login: Sat Oct 23 00:42:19 2010 from admin
[user@web1 ~] $


ただ、この方法だとadminからログインされる全てのサーバにadminの公開鍵を配布するのが面倒なので、私は以下のようなスクリプトをログインされる側のサーバ上で実行して済ませています。

$ echo "ssh-rsa ABCDB3NzaC5yc2EAAAABIwAAAIEA0AIDjalANyx09R5KoWCBRheartsNMNmli95CBQ1eBhzZGEQRdHqyS4I9v/5qgKMsrgruhNMBlGUUrop19ALwodHB852vWvAZG3gReu2c3CbP9qGlA0mTG7nYUCWU0ggFwq1b+HAA5wF/BqkSvWXlTe+9G0/8nmgqZMzKr81fL2u8= user@web1" > /home/user/.ssh/id_rsa.pub_admin

$ chown user.user /home/user/.ssh/id_rsa.pub_admin
$ cat /home/user/.ssh/id_rsa.pub_admin >> /home/user/.ssh/authorized_keys
$ chmod 600 /home/user/.ssh/id_rsa.pub_admin
$ chmod 600 /home/user/.ssh/authorized_keys

|

« サーバリソース監視ツール「munin」をCentOSで手軽に導入する方法 | Main | WEB上からrsyncを実行する方法 »

サーバ・OS」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/32004/49821653

Listed below are links to weblogs that reference パスワードなしで他のサーバにSSH接続する方法 :

« サーバリソース監視ツール「munin」をCentOSで手軽に導入する方法 | Main | WEB上からrsyncを実行する方法 »