FreeBSD 奮闘記
ブログという名の備忘録ですが、更新再開しました。
間違いがありましたらビシバシ指摘してください。
-----今後の更新予定-----
☆PHP   ☆MySQL   ☆CMS
☆JavaScripit ☆XML ☆Ajaxなどなど
その他、FreeBSDインストール編を増やしてほしい等ありましたら
コメントください。私も勉強になりますので!
Amebaでブログを始めよう!

ユーザ管理

mysql> show databases;
mysql> use mysql;
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| func                      |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

PHP-Nukeインストール(1)


PHP-Nuke日本語版
http://nukejp.sourceforge.jp/

ITmedia エンタープライズ:PHP-Nuke 7
http://www.itmedia.co.jp/enterprise/articles/0412/29/news002.html

PHP-Nukeウェブポータルシステム
http://www.infotek.co.jp/o2s/o2s_phpnuke1.html

このあたりを参考にインストール中

更新再開いたします

このブログには、ブログらしいことを書かないつもりだったのですが、
気が付けば、約半年も放置してしまった。

言い訳させてもらえば、
新生活が始まったため、時間がなかったのです。
すいません。

とはいっても、今もほとんど時間はないのですが、
週末ぐらいはFreeBSDをいじって、仲良くなれる時間もありそうなので、
すこしずつ更新(備忘録になりそうですが)したいと思います。

どうぞ、よろしくお願いします。

# 読者になっていただいたみなさま、ありがとうございます。

Permission denied

Windows PC から putty を用いて ssh にて接続はできたのだが、
なぜか ASTEC-X(評価版)のセキュアシェルを用いた
パスワードによる接続ができなかった。

ログウィンドウを起動し確認したところ、
以下のエラーが表示されていた。

Permission denied (publickey,keyboard-interactive)

ぐぐってみたら、
接続先が OpenSSH を利用し、プロトコル優先が SSH2 であることが考えられる
なんていう記事も見つかった。
http://www.itmedia.co.jp/help/tips/linux/l0542.html
だけど、プロトコル優先が異なるなら違うエラーを出す(はず)。

Permission denied といわれていること、
パスワードを聞かれる前にsshによる認証が終了していることがおかしい。
sshd_configをもう一度確認してみてわかった。

# vi /etc/ssh/sshd_config

# Change to yes to enable built-in password authentication.
#PasswordAuthentication no
  ↓
PasswordAuthentication yes


ってな感じで、Passwordによる認証をOKにしてsshdを再起動。

みごと接続成功。
でも、なぜputtyでは接続できたんだろう。
同じパスワードによるログインだったのに…。

sshコマンドのログイン要求でのエラー

Protocol major versions differ: 1 vs. 2

サーバ側のsshdはバージョン2に対応。
しかしクライアント側がバージョン1であるために出るエラー。

原因はいくつか考えられる。
まずは、クライアントのsshのバージョンを確認。
からなずバージョン2を使用すること。

また、sshdをアップデートした際に、
sshd_configまでは変更されないので書き換える必要がある。

2.3.0p1 --> 2.5.2p2 とアップデートしたホストと、 また素から 2.5.2.p2 をインストールしたホストとも比較してみると、 sshd_config にも違いがあるのが解った。 そうか。アップデートの場合には sshd_config が上書きされずに 2.3.0p1 のまま になっていたから、バージョンアップによる変更に対応できていなかったのね。

とゆーことで、sshd_config に以下のエントリを追加することで、 sshd 起動時のメッセージは出なくなった。

HostKey /usr/local/etc/ssh_host_rsa_key
HostKey /usr/local/etc/ssh_host_dsa_key

しかしプロトコルバージョン 2 を用いて SSH ログインできない。

$ slogin -2 localhost
Permission denied (publickey,keyboard-interactive).

$ slogin localhost
Permission denied (publickey,keyboard-interactive).

slogin -1 localhost には問題ないことからすると、 どうやらデフォルトが 1 から 2 に変更になっているらしい。 という事は、原因は ユーザ鍵に RSA 鍵を作っていないため、か。

ssh-keygen -t rsa で Protocol 2 の RSA 鍵 (~/.ssh/id_rsa, id_rsa.pub) を生成。
ssh-keygen -t dsa で Protocol 2 の DSA 鍵 (~/.ssh/id_dsa, id_dsa.pub) を生成。

これでどうだっ!

$ slogin vizzer
Permission denied (publickey,keyboard-interactive).

むー。そうだ! ログイン先のホストに秘密鍵を置いてないじゃん。
id_rsa.pub および id_dsa.pub をログイン先のホストの ~/.ssh/authorized_keys2 に 追加しておく。
(参考までに authorized_key2 の内容はこんな感じ)

ssh-rsa TAEAB3NzaC1yc2E....

ssh-dss TAEAB3NzaC1kc3M....

これで問題解決!
なお ssh-agent には ssh-add ~/.ssh/id_rsa 等として認証情報を登録する。

ひとつ未解決の問題。
~/.ssh/config に Protocol 2,1 を追加。これで 2 がダメだったら 1 で認証という 動作をするはずだが、思うような動作をしない。 む~。Protocol 2 や Protocol 1 では、それぞれ -2 -1 と同様の動作をするだが...。



Permission denied (publickey,keyboard-interactive

回避するためには、接続先のデーモン設定ファイル(/etc/ssh/sshd_config)を次のように編集すればよい。
# vi /etc/ssh/sshd_config ← RPMインストールの際のパス先

Protocol 2,1
  ↓
Protocol 1,2

この編集によって、まずはSSH1プロトコルが優先されることになる。次のようにデーモンの再起動も必要だ。
# /etc/rc.d/init.d/sshd restart

SSHとは

ものすごく詳しいSSHの説明!!

★sshでの暗号化による遠隔操作
http://hiiro-sou.hp.infoseek.co.jp/unix/tips/ssh.html

sshd - OpenSSH SSH デーモン
http://www.unixuser.org/~euske/doc/openssh/jman/sshd.html

ssh-keygen - 認証用の鍵を生成、管理、および変換する
http://www.unixuser.org/~euske/doc/openssh/jman/ssh-keygen.html

鍵の作成
http://www.tcn.zaq.ne.jp/gara_k/pc_unix/pc_unix_019.htm

SSHのメモ
http://www.logos.ic.i.u-tokyo.ac.jp/~masamiti/work/ssh.html

Secure Shellによる安全なリモートアクセス

http://h50146.www5.hp.com/products/software/oe/hpux/developer/tips/ss_remote/p03.html

登録されるfingerprint情報について

Secure Shellクライアントを使用する場合は、telnetや rloginなとを使用する方法と大きくは異なりませんが、最初の接続の際に接続しようとしているホストの fingerprintの確認を求められます。

$ ssh login-name@server.xxx.xx
The authenticity of host 'server.xxx.xx (XXX.XXX.XXX.XXX)' can't be established.
RSA key fingerprint is c7:82:85:c9:73:0d:12:a6:91:fb:23:fc:a8:fd:47:9e.
Are you sure you want to continue connecting (yes/no)?


この確認プロンプトは最初の接続時のみに出力され、yesを選択するとこのfingerprint情報はローカルファイルに保存され次回からはプロンプトは出力されません。以降の通信ではホストのfingerprint情報と記録されている情報とが異なれば、Secure Shellクライアントはホストへの接続を拒否します。

接続しようとするホストの OSが再インストールされたりすると、fingerprintが変更されてしまいますので、この時はローカルに保存されている接続対象ホストのfingerprint情報を削除します。そうするとまた接続時に、対象のfingerprintの確認プロンプトが出力されます。

HP-UX Secure Shellでは、ホストのfingerprint情報は クライアントマシンのローカルなファイル <ホームディレクトリ>/.ssh/known_hosts に格納されていますが、このファイルにはそのユーザが Secure Shellで接続したすべてのホストの fingerprint情報が含まれています。そのため fingerprint情報を削除する場合には エディタでそのファイルを編集し、該当するホストの行だけを削除します。ファイルごと削除してしまうとすべての登録済みホストに対するfingerprint情報が消えてしまいますので注意してください。

目的のホストのfingerprintの確認方法

Secure Shellでは最初の接続時に、fingerprintの確認が行われますが、この時正しくないホストを登録してしまっては意味がありません。接続するホストのfingerprintを安全な方法で入手しておき、初回接続の際にそれを確認します。

SSHサーバの RSA公開鍵が 以下のディレクトリに登録されています。fingerprintはこの公開鍵を変換し16進数形式で表現したものです。

/opt/ssh/etc/ssh_host_rsa_key.pub

このファイルの中身は、公開鍵そのものですので、このファイルをそのまま参照しても fingerprintとしては、識別できません ssh-keygenコマンドを使用して、公開鍵をfingerprintとして出力できます。

# ssh-keygen -l -f /opt/ssh/etc/ssh_host_rsa_key.pub
1024 c7:82:85:c9:73:0d:12:a6:91:fb:23:fc:a8:fd:47:9e /opt/ssh/etc/ssh_host_rsa_key.pub


sshで接続を行う前に、これを改ざんされない安全な方法で入手しておきます。セキュリティの保たれた電子媒体を使用しても良いですし、紙に出力して郵送するなどもよい方法でしょう。

DynamicDNS

私的DynamicDNS(MyDNS.jp)
http://www.mydns.jp/

Dynamic DO!.jp - ダイナミックDNS -
http://ddo.jp/

ieServer.Net - ダイナミックDNS(DDNS)サービス
http://www.ieserver.net/

Dynamic Domain Name System
http://www.instat.ne.jp/ddns/index.html

ちなみに、私はieServer.Netにしました。
理由は、特になしです(笑)。

日本語環境

X と起動時のホスト名のエラー

Xを起動後以下のエラーメッセージが出た。

xauth:(argv):1:bad display name "xxx.yyy.zzz:0" in "remove" command

ADSL(Yahoo BB)によるネットワーク接続の場合
DHCP により IPアドレスが動的に割り当てられる。
このとき、自ホスト名の名前解決ができないため、
このようなエラーが出るらしい。

これを回避する解決方法としては、
/etc/hosts ファイルに自ホスト名を、
実際に割り当てられたIPアドレスをifconfigコマンドで調べ、
その都度記述すればよい。

しかし、IP アドレスが動的な場合は、
決まった IP アドレスを記述できないので(毎度調べるのも面倒なので)、
127.0.0.1 (ループバック)を利用するといい。

/etc/hostsファイルの例
127.0.0.1 localhost localhost.example.jp
127.0.0.1 xxx xxx.yyy.zzz