さて一通りの設定は出来ました。
一応は色々と作業出来る環境の筈ですが、ちょっと面倒なのは raspberry pi にアクセスするのにいちいちパスワードを入れる事。
まぁセキュリティ的に raspberry pi のパスワードなしにって訳には行きませんが、SSH でアクセスする時だけはパスワード無しにする事が出来ます。
こうすると、簡単にリモートのコマンドやシェルを動かせるので、操作元のシェルから操作先のサーバーのシェルを動かせるって事になります。
これは結構便利です。
基本的には「公開鍵暗号方式」というものを利用します。
鍵は「秘密鍵」と「公開鍵」の二つがペアとして機能します。
秘密鍵は自分(アクセスする側)が保管し、公開鍵は相手(サーバー側)に渡します。
秘密鍵で暗号化すると、ペアとなった公開鍵以外では解除できませんから、「公開鍵で開ける事が出来る=相手が確かに秘密鍵を持っている人」という形が保証されます。
ですからパスワードが無くても、アクセスしてきた相手が特定出来るという訳です。
では実際の作業に入りましょう。
先ずはアクセス元(クライアントPC)での作業となります。
1.先ずは鍵の作成です。
ホームディレクトリで作業するのが良いでしょう。
# ssh-keygen -t rsa
これでホームディレクトリ下に「.ssh」というフォルダが作成され、その下に「id_rsa」という秘密鍵「id_rsa.pub」という公開鍵のペアが作成されます。
出来ればどの鍵か分かる様にファイル名にサーバー名とか、ユーザー名などを追加しておくと良いでしょう。
2.「.ssh」に「config」というファイルを作成してその中に
Host *
IdentityFile ~/.ssh/id_rsa_mac
と2行を書き込みます。
最後の鍵の名前はアクセスする側の Mac の名前を追加した「秘密鍵」です。
なお、最新の Mac OS を使用している場合は更に下の2行を追加します。
UseKeychain yes
AddKeysToAgent yes
3.ホームディレクトリに「.rhosts」というフォルダを作成し、以下の様にサーバ名とアクセス元のユーザー名を記述します。
raspberry.local naosan
複数のサーバーがいる場合は、1行に1ユーザづつ書き込みます。
ここからはアクセスされるサーバー側(raspberry pi 側)の設定です。
4.同じ様にホームディレクトリに「.ssh」フォルダを作成します。
5.ここにクライアントが作成した「公開鍵」をコピーします。
SCP などを利用するか、USBメモリとかでコピーすれば良いでしょう。
6.この公開鍵を「authorized_keys」というファイルに書き込みます。
クライアントが一台しかないのであれば、公開鍵そのものをリネームしても良いですが、追加する場合は以下の様に「cat」で追加すると良いでしょう。
# cat id_rsa_mac.pub >> authorized_keys
7.最後に SSH を再起動します。
# sudo service ssh restart
注):
ssh接続先サーバがOSを再インストールしたとか、接続先サーバのホスト名を変更したとか、そういった時にエラー(ワーニング)が発生して接続が出来なくなる事がある。
その場合は保存している接続先サーバの情報(フィンガープリント)を削除してしまえば、新規接続となるためエラーを回避出来ます。
削除に仕方は、
# ssh-keygen -R ホスト名
一応は色々と作業出来る環境の筈ですが、ちょっと面倒なのは raspberry pi にアクセスするのにいちいちパスワードを入れる事。
まぁセキュリティ的に raspberry pi のパスワードなしにって訳には行きませんが、SSH でアクセスする時だけはパスワード無しにする事が出来ます。
こうすると、簡単にリモートのコマンドやシェルを動かせるので、操作元のシェルから操作先のサーバーのシェルを動かせるって事になります。
これは結構便利です。
基本的には「公開鍵暗号方式」というものを利用します。
鍵は「秘密鍵」と「公開鍵」の二つがペアとして機能します。
秘密鍵は自分(アクセスする側)が保管し、公開鍵は相手(サーバー側)に渡します。
秘密鍵で暗号化すると、ペアとなった公開鍵以外では解除できませんから、「公開鍵で開ける事が出来る=相手が確かに秘密鍵を持っている人」という形が保証されます。
ですからパスワードが無くても、アクセスしてきた相手が特定出来るという訳です。
では実際の作業に入りましょう。
先ずはアクセス元(クライアントPC)での作業となります。
1.先ずは鍵の作成です。
ホームディレクトリで作業するのが良いでしょう。
# ssh-keygen -t rsa
これでホームディレクトリ下に「.ssh」というフォルダが作成され、その下に「id_rsa」という秘密鍵「id_rsa.pub」という公開鍵のペアが作成されます。
出来ればどの鍵か分かる様にファイル名にサーバー名とか、ユーザー名などを追加しておくと良いでしょう。
2.「.ssh」に「config」というファイルを作成してその中に
Host *
IdentityFile ~/.ssh/id_rsa_mac
と2行を書き込みます。
最後の鍵の名前はアクセスする側の Mac の名前を追加した「秘密鍵」です。
なお、最新の Mac OS を使用している場合は更に下の2行を追加します。
UseKeychain yes
AddKeysToAgent yes
3.ホームディレクトリに「.rhosts」というフォルダを作成し、以下の様にサーバ名とアクセス元のユーザー名を記述します。
raspberry.local naosan
複数のサーバーがいる場合は、1行に1ユーザづつ書き込みます。
4.同じ様にホームディレクトリに「.ssh」フォルダを作成します。
5.ここにクライアントが作成した「公開鍵」をコピーします。
SCP などを利用するか、USBメモリとかでコピーすれば良いでしょう。
6.この公開鍵を「authorized_keys」というファイルに書き込みます。
クライアントが一台しかないのであれば、公開鍵そのものをリネームしても良いですが、追加する場合は以下の様に「cat」で追加すると良いでしょう。
# cat id_rsa_mac.pub >> authorized_keys
7.最後に SSH を再起動します。
# sudo service ssh restart
注):
ssh接続先サーバがOSを再インストールしたとか、接続先サーバのホスト名を変更したとか、そういった時にエラー(ワーニング)が発生して接続が出来なくなる事がある。
その場合は保存している接続先サーバの情報(フィンガープリント)を削除してしまえば、新規接続となるためエラーを回避出来ます。
削除に仕方は、
# ssh-keygen -R ホスト名
コメント
コメントを投稿