Macとかの雑記帳

設定ファイルでパス無しログインを許可するのではなく、RSAキーを生成する際にパスフレーズ無しでキーを作り、パス無しでログインするという方法です。

やり方

検証環境は、サーバがUbuntu、クライアントがMacです。

まず、クライアントPCであるMacでキーを生成します。

$ ssh-keygen -t rsa

上を実行後、下のようにリターンを連打します。

Generating public/private rsa key pair. Enter file in which to save the key (/Users/you/.ssh/id_rsa):  (リターンを入力)


Enter passphrase (empty for no passphrase): (リターンを入力)

Enter same passphrase again: (リターンを入力)

Your identification has been saved in /Users/you/.ssh/id_rsa.

Your public key has been saved in /Users/you/.ssh/id_rsa.pub.

The key fingerprint is: 6d:44:34:7c:c5:a3:2c:bd:29:1f:d1:95:02:bf:4c:0b hoge@hoge.com

ちゃんと鍵が作られているか確認します。

$ ls $HOME/.ssh/
id_rsa   秘密鍵(600)

id_rsa.pub 公開鍵(644) ←これをサーバーへ送信する。

サーバーにRSAキーを追加する。

クライアント(Mac)で作成した id_rsa.pub を サーバ(Ubuntu)側の authorized_keys というファイルに追加します。

クライアント(Mac)で以下を実行し、作成したキーをサーバに送ります。

$ scp ~/.ssh/id_rsa.pub サーバのユーザ名@サーバのアドレス:~/.ssh/id_rsa.pub

サーバ(ubuntu)側で以下を順に実行してキーを追加します。

$ cd $HOME/.ssh
$ cat id_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys

.ssh ディレクトリが無い場合はあらかじめ作成しときます。

$ mkdir $HOME/.ssh
$ chmod 700 $HOME/.ssh

キーを追加したら、念のためsshを再起動しときます。

$ service sshd restart

サーバーにログインしてみる

私の場合、鯖機のユーザー名が ubuni でIPアドレスが 192.168.1.242 なので、Macのターミナルから以下を実行し…

$ ssh -l ubuni 192.168.1.242

パスワード無しでログインできることを確認します。

ログインできなかった場合は、サーバーの /etc/ssh/sshd_config ファイル内の次の2行のコメントを外して有効にします。

#PubkeyAuthentication yes
#AuthorizedKeysFile>%h/.ssh/authorized_keys

PubkeyAuthentication yes
AuthorizedKeysFile>%h/.ssh/authorized_keys

変更したらsshを再起動してください。

RSAキーを使っているとは言え、パスワード無しなのでセキュリティ的によろしくないです。ローカルのサーバで、手抜き設定として使うならいいんじゃないでしょうか。

参考リンク:Solarisパスワード無しでsshログイン

スポンサード リンク