Solaris パスワード無しでsshログインする(rsyncするときパスワードを入力しないで実行できる)

いつもは、ssh -l webuser www.example.com と毎回打ち込み、パスワードを入力する。

以下の場合は、パスワードの入力を省いて自動ログインを検討する。 

  • パスワードの入力が面倒な場合
  • シェルスクリプトでログインが発生する場合
  • rsyncコマンド利用時、毎回パスワードを入力するのが面倒な場合

方法は、クライアントで認証鍵ペアを生成して、サーバにその鍵を置いておく。

 

■サーバにログインするたびにパスワードを入力したくない 

今回の構成。別にSolaris – Linuxでも、Solaris – Solarisでもかまわないけど。 

<構成>

サーバ:

マシン名: Solaris(Macで作った公開鍵を置く)

ホスト名: www.example.com

ユーザ名: webuser でログインする。

 

クライアント: 

マシン名: Mac (Macで作った秘密鍵と公開鍵を持っておく)

ユーザ名: 宮田 

 

<最終的にこうなる>

サーバ:    Solaris(ログインしたいユーザディレクトリ/.ssh/authorized_keys)

クライアント: Mac (自分のディレクトリ/.ssh/id_rsa)(公開鍵は、.ssh/id_rsa.pub)

 

■クライアントのMacで、宮田さんが公開鍵RSAキーを生成する

ssh-keygen -t rsa を入力した後、3回リターンキーをたたく。

パスフレーズを入力してしまうと、sshするたびにパスフレーズを聞いてくるので、今回はリターンを入力する。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/miyata/.ssh/id_rsa): (リターンを入力)
Enter passphrase (empty for no passphrase): (リターンを入力)
Enter same passphrase again: (リターンを入力)
Your identification has been saved in /Users/miyata/.ssh/id_rsa.
Your public key has been saved in /Users/miyata/.ssh/id_rsa.pub.
The key fingerprint is:
6d:44:34:7c:c5:a3:2c:bd:29:1f:d1:95:02:bf:4c:0b miyata@hoge.com

確認する。 

$ ls $HOME/.ssh/
id_rsa    秘密鍵(600)
id_rsa.pub  公開鍵(644) これをサーバへftpで送信する。

 

 

■サーバSolarisに宮田さんの公開鍵RSAキーを追加する

宮田さんの公開鍵 id_rsa.pub を authorized_keys というファイルに公開鍵を追加する。

 

サーバのSolaris(webuserでログインする)

$ cd $HOME
$ cd .ssh
$ cat 宮田さんのid_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys

.sshディレクトリが無い場合は作る。mkdir .sshした後に、chmod 700 .sshを実行すること。

authorized_keysファイルが無い場合は、手作業で新規に作る。

authorized_keysは、キーホルダーみたいなもので、 佐藤さんの鍵、田中さんの鍵…のように追加することができる。

 

宮田さんが次回sshログインするとき、authorized_keys内の宮田さんの鍵が照らし合わされて、パスワード入力を免除してもらえるという仕組み。 

 

■宮田さんがサーバSolarisへログインする

宮田さんがMacからhoge.comにログインする。

$ ssh -l miyata www.example.com

パスワードを入力しなくてもログインできるようになったはず。

公開鍵を作るときにパスフレーズを入力しなかったので自動ログインできる。

 

Solarisではなく、Linuxサーバに上手くログインできなかった場合、Linuxサーバの/etc/ssh/sshd_config内の次の2行のコメントを外して有効にし、sshdを再起動する。

PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys 

 

(参考)sshdの再起動

(Solaris)
# svcadm restart ssh

(Linux)
# service sshd restart 

 

 

公開鍵を作るときにパスフレーズを入力した場合は、以下を参考にどうぞ。。。

 

■パスフレーズを使った場合のログイン(参考情報)

(今回は、パスフレーズにリターンキーを入力しただけなので、この情報は参考まで)

パスフレーズを入力した場合のログインは、こんな感じ。

$ ssh -l miyata hoge.com
Enter passphrase for key '/Users/Miya/.ssh/id_rsa': (パスフレーズを入力する)

 パスワードが、パスフレーズに置き換わっただけで、ログインが楽になりません。

 

Macのターミナル上で、

$ exec /usr/bin/ssh-agent $SHELL
$ ssh-add
Enter passphrase for /Users/ysasaki/.ssh/id_rsa: (パスフレーズを入力する)

そうすると、次回から、

$ ssh -l miyata hoge.com

パスワード入力なしでログインできます。

 

でも、難点がひとつ。ターミナルを閉じるとリセットされてしまう。つまり、毎回上記の設定をしなければいけない。

 

ターミナルウィンドウに「一時的に」パスフレーズが保存されていたということ…。