Solaris パスワード無しでsshログインする(rsyncするときパスワードを入力しないで実行できる)
- 2007.04.26
- Solaris
いつもは、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
パスワード入力なしでログインできます。
でも、難点がひとつ。ターミナルを閉じるとリセットされてしまう。つまり、毎回上記の設定をしなければいけない。
ターミナルウィンドウに「一時的に」パスフレーズが保存されていたということ…。
-
前の記事
特定ファイルをまとめて削除する 2007.04.24
-
次の記事
MacOS X が起動しない 2007.05.13