FreeBSD QandA 2001年1月8日 更新分

QandA
QandA Project
登録・更新 QandA 一覧

管理番号 211 (更新) 更新履歴
Q. ppp (iij-ppp) への nat-xxxx.patch のあて方と、インストールのしかたを
   教えてください。

A. FreeBSD 3.3R 以降の ppp(8) には、既に NAT 機能が含まれています。また、
   いまだに FreeBSD の ppp(8) の事を iij-ppp と呼ぶ人がいますが、現在では
   大幅に書き換えられたため元の iij-ppp とはかなり異ります。それ以前の 
   RELEASE の FreeBSD を使っているのならば、可能ならシステムのアップグレー
   ドをお薦めします。もし、どうしても古いシステムのまま、ppp だけを NAT 
   に対応させる事も不可能ではありませんが、恐らく茨の道を覚悟しておいてく
   ださい。

   1. まず使用中の FreeBSD のソース (usr.sbin) を CD-ROM などから
      インストールして下さい。

       # mount /cdrom
       # cd /cdrom/x.x-RELEASE/src
       # sh install.sh susbin

   2. 次に佐藤さんのホームページから nat-******.patch を入手します。
      ****** には、nat patch のバージョン (日付け) が入ります。目的の 
      FreeBSD 用のものをダウンロードしてください。

       <URL:http://configure.sh/FreeBSD/NAT/nat.html>

      改行コードの問題などがあるのでダウンロードには気をつけてください。 
      FreeBSD の Netscape からだと右クリックして Save Link as でダウンロード。
      Windows95 のブラウザだと名前を保存して、FreeBSD に移す際に Ascii
      Text) モードで転送する事。

   3. 無事にダウンロードできたらパッチを当てます。

       # cd /usr/src/usr.sbin
       # patch -p < /tmp/nat-******.patch

   4. 新しい ppp をコンパイルしてインストールします。

       # cd /usr/src/usr.sbin/ppp    # /usr/src/usr.sbin/ppp に移動
       # make                        # コンパイルします。
       # make install                # インストールします。

      これで完成です。ppp は、オリジナルを上書きする形で、/usr/sbin に
      インストールされます。


管理番号 1682 (新規) 更新履歴
Q. DES をインストールしたら、

   % passwd
   /usr/libexec/ld-elf.so.1: Undefined symbol "com_err_hook" 
   referenced from COPY relocation in passwd

   のように言われて、passwd コマンドが使えなくなったのですが。

A. DES のインストール時に kerberos もインストールしたのではありません
   か。OS のバージョンによっては、su で core を吐く、ということもある
   ようです。passwd, su などのコマンドは kerberos によってそれに対応し
   たものに置き換えられてしまいます。kerberos が不要ならアンインスト
   ールしましょう。


管理番号 1683 (新規) 更新履歴
Q. Kerberos (ケルベロス) をアンインストールするにはどうしたらいいですか。

A. 2つの方法があります。

   A1. /stand/sysinstall を使って bin をインストールし直す。

     FreeBSD FAQ「Q: Kerberos をアンインストールするにはどうすればいいの?」
       <URL:http://www.jp.FreeBSD.org/www.FreeBSD.org/ja/FAQ/admin.html>
     に書かれている方法で、これが一番簡単です。ただし、これをやると、/etc 
     のファイルなども最初の状態に戻ってしまう恐れがありますし、DES をインス
     トールしていた場合はそれもいくつかのファイルが元に戻ってしまいます。

   A2. Kerberos によって置き換えられてしまったファイルを、bin, proflibs
       配布ファイルから復元する。

     例えば次のようにするといいでしょう。なお、$CDROM は FreeBSD の配布ディ
     レクトリを指定しておきます。

     1) ルートディレクトリに移動します。
       # cd /

     2) Kerberos の配布ファイルに含まれるファイルのリストを作ります。
       [3.5-RELEASE まで]
       # cat $CDROM/des/krb.?? | tar ztf - | sort > /tmp/ttt

       [4.0-RELEASE から]
       # cat $CDROM/crypto/krb4.?? | tar ztf - > /tmp/ttt1
       # cat $CDROM/crypto/krb5.?? | tar ztf - >> /tmp/ttt1
       # sort /tmp/ttt1 | uniq > /tmp/ttt

     3) 元のファイルを配布ファイルから展開します。
       # chflags noschg `cat /tmp/ttt`
       # cat $CDROM/bin/bin.?? | tar --unlink -zxvpf - `cat /tmp/ttt` > /tmp/yyy
       # cat $CDROM/proflibs/proflibs.?? | tar --unlink -zxvpf - `cat /tmp/ttt` >> /tmp/yyy
       # cat $CDROM/manpages/manpages.?? | tar --unlink -zxvpf - `cat /tmp/ttt` >> /tmp/yyy

       [4.0-RELEASE から追加]
       # cat $CDROM/crypto/crypto.?? | tar --unlink -zxvpf - `cat /tmp/ttt` >> /tmp/yyy

     4) 残ったゴミを片付けます。
       # sort /tmp/yyy | uniq > /tmp/yyy1
       # rm -f `comm -3 /tmp/ttt /tmp/yyy1`

   おまけとして、上記の作業を自動化するスクリプトを添付します。使用に
   際しては自己責任でお願いします。

   ----ここから----
   #!/bin/sh
   # $Id: uninstall_kerberos,v 1.5 2000/12/24 16:45:02 toshi Exp $
   # Example:
   #  # cd /
   #  # sh ./uninstall_kerberos /proj/ftp/FreeBSD/4.2-RELEASE
   # Please use *at your own risk*

   CDROM=/cdrom
   [ "$1" != "" ] && CDROM=$1

   KRB=/tmp/krb.list
   KRB1=/tmp/krb1.list
   ORG=/tmp/org.list
   ORG1=/tmp/org1.list

   CRYPTO=
   echo 'Make a list of kerberos binaries.'
   if [ -d $CDROM/crypto ]; then
     CRYPTO=crypto
     cat $CDROM/crypto/krb4.?? | tar ztf - > $KRB
     cat $CDROM/crypto/krb5.?? | tar ztf - >> $KRB
   elif [ -d $CDROM/des ]; then
     cat $CDROM/des/krb.?? | tar ztf - > $KRB
   else
     echo "$CDROM: No such kerberos distribution files." 1>&2
     exit 1
   fi
   sort $KRB | uniq > $KRB1

   echo -n 'Restore files from distribution files:'
   rm -f $ORG
   chflags noschg `cat $KRB1`
   for i in bin proflibs manpages $CRYPTO
   do
     echo -n " $i"
     cat $CDROM/$i/$i.?? | tar --unlink -zxvpf - `cat $KRB1` >> $ORG 2> /dev/null
   done
   echo "."

   echo 'Cleanup all garbage.'
   sort $ORG | uniq > $ORG1
   rm -f `comm -3 $KRB1 $ORG1`
   rm -f $KRB $KRB1 $ORG $ORG1
   ----ここまで----


管理番号 1730 (新規) 更新履歴
Q. FreeBSD 4.1.1R 以降を使用しています。

   FreeBSD ハンドブック「10.5 ディスクの追加」の「10.5.2.2 専用モード」を
   参考にして HDD の追加を試みましたが、次のエラーが出て先に進めません。

    % dd if=/dev/zero of=/dev/rad1
    dd: /dev/rad1: Operation not permitted

A. 可能性の一つでしかありませんが、インストール時に「Select default
   system security profile」を「High」(4.1.1R) または「Extreme」(4.2R 以降)
   に設定しなかったでしょうか。sysinstall(8) で次の場所にある項目です。

      /stand/sysinstall -> Configure -> Security

   設定したなら /etc/rc.conf に次の行があると思います。

     -- /etc/rc.conf --
     kern_securelevel="2"
     kern_securelevel_enable="YES"
     ------------------

   この二行があると、上記エラーになります。システムをシングルユーザモード
   で再起動して作業するか、セキュリティレベルを下げてください。

   FreeBSD のカーネルには 0〜3 までの 4 つのセキュリティレベルがあり、こ
   の値によってデバイスファイルへの書き込みを禁止できます。これ以外にも、
   カーネル変数の変更を禁止したり、パケットフィルタルールの変更を禁止した
   りできます。

   現在のセキュリティレベルは
     % sysctl kern.securelevel
   で参照可能。デフォルトは -1。

   詳しくは securelevel(8) または init(8) を読んでください。また、セキュ
   リティに関して security(7) も参考になるでしょう。なお、sysinstall(8) 
   のメニューに登場したのは 4.1.1R が最初ですが、セキュリティレベルの機能
   自体はもっと以前からありました。


管理番号 106 (更新) 更新履歴
Q. X で使える k14 (14ドット) よりも小さい font があると聞いたのですが。

A. 以下のフォントが ports 及び packages にあります。

   要町(かなめちょう)    12x12ドット     ports/japanese/k12
   ナガ10(なが・じゅう)    10x10ドット     ports/japanese/k10
   恵梨沙フォント          10x8ドット      ports/japanese/elisa10x8
                           8x8ドット       ports/japanese/elisa8x8

   また、ports/japanese/netscape-fonts は上記のフォントを含みますので、こ
   の ports をインストールするか、日本語のサポートされた Netscape をイン
   ストールすれば、これらのフォントも同時にインストールされます。


管理番号 1764 (新規) 更新履歴
Q. FreeBSD 4.x で kterm を使っているときに、vi などで画面の文字が
   ゴミとなって残ることがあります。

A. FreeBSD 4.x で画面制御ライブラリに ncurses(3) を使用するように
   なったため、termcap(5) データベースの kterm に関するエントリに
   潜んでいたバグが顕在化しています。

   今のところ 2 通りの解決方法があります。


   1) /usr/share/misc/termcap の kterm のエントリを以下のように修正し、
      /usr/share/misc で cap_mkdb termcap を実行して下さい。

      kterm|kterm kanji terminal emulator (X window system):\
        :hs:es:ts=\E[?E\E[?%i%dT:fs=\E[?F:ds=\E[?H:\
        :KJ:sc=\E7:rc=\E8:cs=\E[%i%d;%dr:TY=ascii:\
        :eA@:as=\E(0:ae=\E(B:tc=xterm-r6:


   2) $HOME/.termcap (なければ作成する) に以下の記述を追加し、
      eval `tset -s` をシェルの初期化ファイルなどで実行して下さい。

      kterm|kterm kanji terminal emulator (X window system):\
        :hs:es:ts=\E[?E\E[?%i%dT:fs=\E[?F:ds=\E[?H:\
        :KJ:sc=\E7:rc=\E8:cs=\E[%i%d;%dr:TY=ascii:\
        :eA@:as=\E(0:ae=\E(B:tc=xterm-r6:


管理番号 1765 (新規) 更新履歴
Q. FreeBSD Ports Collection を使ってアプリケーションをインストールしてい
   ます。必要な時にアプリケーションのソースを取得してくれるのは良いのです
   が、ダイアルアップ環境では通信費用がかかります。依存する ports に必要
   なソースも含めて一度にまとめて取得する方法は無いでしょうか?

A. fetch-recursive と言うターゲットがあります。インストールしたい
   ports(7) のディレクトリに移動して

   # make fetch-recursive

   で依存する ports も含めて必要なソースを全て取得して来ます。


管理番号 278 (更新) 更新履歴
Q. FreeBSD で不良セクタ (Bad Sector) のある IDE ハードディスクが使えますか?
   また、FreeBSD は自動的に修復してくれないのですか?

A. 4.0-RELEASE 以上で採用された ad(4) ドライバでは、基本的に不良セクタの
   ある IDE ハードディスクはサポートしていないため使えません。もしかしたら 
   [管理番号 314] にある low-level フォーマットで使えるようになるかもしれ
   ませんが、素直に問題のない HDD に交換した方が良いでしょう。特にそれ以前
   のリリースで、bad144(8) による bad sector table を持つ HDD を使用してい
   た場合、システムをアップグレードすると、次のようなエラーメッセージが表示
   されて起動に失敗します。

    Mounting root from ufs:/dev/ad0s2a
    ad0: bad sector table not supported
    ad0s2a: bad sector table not supported
    Root mount failed: 22

   もし、万一このような状態になったら、慌てず騒がず別のマシンにこの HDD 
   をつなぎかえ、dump(8) するか強制的に mount(8) して、必要なファイルの
   バックアップを取れば良いでしょう。3.x ベースのカーネルを保存してあれば、
   つなぎかえる必要はないかもしれません。

    # mount -f -o ro /dev/ad2s2a /mnt

   以下の説明は FreeBSD 4.x 以降では使えないか、あまり一般的な方法ではあり
   ません。IDE HDD やファイルシステムについて、それなりの知識を要求される
   方法でもあります。

   以前の wd(4) ドライバでは、bad144(8) コマンドによる不良セクタの代替処理
   が使えます。ファイルシステムとして使用中のセクタを代替することもできます
   が、決して勝手に修復してくれるわけではありません。また、代替用のセクタを
   確保しておかなければならないので、newfs(8) 前に HDD 全体をスキャンしてお
   いた方が安全です。FreeBSD のインストーラ sysinstall(8) からでは、FDISK
   Partition Editor の "B" コマンドを指定すると bad144 が実行されます。

   それから badsect(8) というコマンドもあります。これは不良セクタを特別なファ
   イルに閉じ込めることで、通常のファイルとして使わないようにするもので、い
   くつかの制限事項はありますが、FreeBSD のリリースに関わらず使えるはずです。


管理番号 373 (更新) 更新履歴
Q. FreeBSD Ports Collection の emulators/snes9x には、最近 (2000年12月現在)
   USB ジョイスティックをサポートするコードが入ったようですが、私の
   ジョイスティックは使えません。なぜですか?

A. 次の項目を確認して下さい。

   1) /etc/rc.conf で
   usbd_enable="YES"
   となっている (/etc/defaults/rc.conf では NO です)。

   2) dmesg | grep uhid とした時に
   uhid0: vendor 0x0603 USB GamePad STD., rev 1.00/1.00, addr 2, iclass 3/0
   のように、ジョイスティックに対応したデバイスが検出されている。

   3) ls -l /dev/uhid0 とした時に、
   crw-r--r--  1 root  wheel  122,   0  11/26 10:50 uhid0
   のように、snes9x を使うユーザーの読み込みパーミッションがある。

   以上です。

   それから、Linux 用の SNES9X を FreeBSD で使う場合、
     <URL:ftp://ftp.rge.com/pub/X/contrib/widgets/motif/joystick.tar.gz>
   を試してみてはどうですか? xquake はこれでジョイスティックが
   使えているようです。


管理番号 314 (更新) 更新履歴
Q. HDD に不良セクタ (Bad Sector) が発生したようです。再度インストールし直
   そうと思いますがその前に何かしておくことはありますか?

A. まず一般論として、最近の HDD は大容量化の影響もあり、一旦 Bad Sector が
   発生し始めると、そのあとは一気に被害が拡大することが多くなっています。
   以下に説明する方法で代替処理 (repair a defect sector) を行っても、重要
   なデータをその HDD に置くべきではありません。

   最初に FreeBSD FAQ の「Q: ハードディスクに不良セクタがあります!」を見て
   ください。以下の URL です。

   <URL:http://www.jp.FreeBSD.org/www.FreeBSD.org/ja/FAQ/troubleshoot.html#AWRE>

   FreeBSD FAQ は 2.2.x ベースの内容が主で、必ずしも最新状況が反映されてい
   るわけではありません。以下の補足事項も参考にしてください。

   (1) IDEディスクの場合

   FAQ にもあるように、各 HDD ベンダが Web 等で供給しているユーティリティ
   を使って、low-level フォーマットを行なうことが考えられます。これにより
   不良セクタの代替処理が行なわれるでしょう。

   low-level フォーマットはなかなかデリケートな処理なので、十分に安定した
   条件下で行なって下さい。IDE の場合は各ベンダ間で互換性がない事があるの
   で、必ず HDD のメーカの供給するユーティリティを使って下さい。

   low-level フォーマット以外には bad144(8) というコマンドがありますが、
   これは 4.0-RELEASE 以降の ad(4) ドライバでは使用できません。また wd(4)
   ドライバでも、最近の大容量 HDD では代替可能セクタ数をオーバーしてしま
   うなど、逆に問題を引き起こす可能性もあります。[管理番号 278] も参照し
   てください。

   (2) SCSIディスクの場合

   3.0-RELEASE 以降では scsi(8) コマンドは camcontrol(8) コマンドに置き換
   えられました。これはドライブごとに次のコマンドを root で実行して、

    # camcontrol da2 -m 1 -e -P 3

   そして, AWRE と ARRE の値を 0 から 1 へ変更します:-
    AWRE (Auto Write Reallocation Enbld):  1
    ARRE (Auto Read Reallocation Enbld):  1

   もちろんディスクを外して例えば Mac 上でこの処理を行なってもよいです :-)
   Mac のSCSIディスクユーティリティの HDT は実に良くできている...

   SCSI ディスクの場合も low-level フォーマットがありますが、low-level
   フォーマットは不良セクタの特に多いディスクを、無理矢理使うような特殊な
   場合を除いてあまりメリットのある方法ではありません。


管理番号 1770 (新規) 更新履歴
Q. 私はメールクライアントの passwd 再設定をさせたくないので現在使用中
   の FreeBSD 2.2.5 から FreeBSD 3.5.1 へのバージョンアップは CD-ROM 
   を使って UPGRADE しようと考えています。

   CD-ROM 内の FreeBSD のアップグレードをよく読んで、注意点を押さえて
   やればこのまま実行して大丈夫ですよね。

A. インストーラのメッセージでも表示されるように、なにがおきても自分で
   なんとかできる人以外は、そのまま UPGRADE してはいけません。/etc 配下の
   ファイル、パッケージのリスト (/var/db/pkg)、メールスプール、追加アプリ
   ケーションとその設定ファイル (/usr/local や /usr/X11R6 以下など)、
   ホームディレクトリ (/home) などを確実にバックアップしておいて、新規に
   インストールしましょう。

   このようなとき、/var, /usr/local, /usr/X11R6, /home などが / や /usr 
   と別パーティションになっていると、インストーラの disklabel の画面で、
   / (ルート) と /usr だけ Newfs フラグを Yes にすれば良く、あとでリスト
   アする手間がかなり省けます。もちろん自分で必要なものだけで良いのですが、
   もし完全に真っ新の状態からリストアするのなら、X11 はリストアしてから追
   加インストールした方が、パッケージで入れたものが混乱しないですみます。
   また、FreeBSD のリリースが上がることで compat?? ライブラリが必要になる
   場合があります。特に 2.2.x からの更新では compat22 はほとんど必須とい
   えるかもしれません。これは、いまだに aout 形式のアプリケーションが存在
   するためで、一連の Netscape 関連のパッケージはその筆頭です。

   FreeBSD のメジャーバージョン (リリース番号の最初の数字) が上った場合、
   設定ファイルの書式も大きく変わっているものが多いため、これらを書き戻す
   だけでは動かないものがあります。通常は mergemaster(8) を使って設定ファ
   イルを更新すれば、全てを手動で対処するよりも楽だと思います。

   mergemaster の実行には /usr/src に FreeBSD のソースが必要なので、事前
   にインストーラを利用するなどして展開しておいてください。次に、/etc 全
   体を以前の状態にリストアしてから mergemaster を実行します。基本的には 
   'i' コマンドでそのまま /etc にコピーするか、'm' で変更点をマージしてか
   らコピーすることになりますが、/etc にコピーせずに保留にしたファイルは 
   /var/tmp/temproot 以下に残されますので、後で個別に対処してください。
   また、最後にいくつか手動でコマンドを実行するようにメッセージが表示され
   ることがあります。

    # cd /dev && sh ./MAKEDEV all
    # newaliases
    # cap_mkdb /etc/login.conf
    # pwd_mkdb -p /etc/master.passwd

   なおバックアップとリストアには、確実にユーザ情報やパーミッションなどが
   復元できるツールを使ってください。例えば、dump(8) + restore(8)tar(1) コマンドや cp(1) を使う場合は -p オプションを指定するようにして
   ください。


管理番号 220 (更新) 更新履歴
Q. FreeBSD(98) では PC カード が使えますか?

A. FreeBSD(98) 4.1.1R 以降のバージョンでは標準で PC カードを
   サポートしています。詳細は Hardwa98.txt 等をご覧下さい。

   それ以前の 2.2.x や 3.x では、AT 互換機用の PAO を PC98 用に移植した
   PAO(98) があります。また、PC カードからのインストールに対応したインス
   トールフロッピー (boot.flp) も、以下の URL から入手できます。 

   <URL:http://www.tim.hi-ho.ne.jp/~kura/freebsd/index.html>


管理番号 251 (更新) 更新履歴
Q. FreeBSD(98) の kernel 再構築の手順を教えてください。

A. FreeBSD 2.2R 以降はカーネルソースの大部分が PC/AT(i386)版に
   取り込まれましたので、特にパッチを当てる必要はありません。

   最近のリリースでは、config98.txt というドキュメントが添付されて
   います。少し情報が古いですがそちらを参考にしてください。


管理番号 480 (更新) 更新履歴
Q. FreeBSD(98) で SMP を使用できますか?
   また、CPU をいくつまでコントロールすることができるのですか?

A. 2000年11月現在、開発中です。

   試験的な実装で Pentium Pro や Pentium II 機でも動作するものが
   あります。開発に協力していただける方は 
   <URL:http://www.jp.FreeBSD.org/pc98/ml/> を読んでいただいて
   FreeBSD98-testers ML へお問い合わせください。


管理番号 745 (更新) 更新履歴
Q. FreeBSD で音楽 CD の曲データ (CD-DA) を CD-ROM, PD ドライブを用いて
   取り出せますか?

A. 全てのドライブで可能というわけではありませんが、次の樣な方法が考えられ
   ます。

    1. SCSI CD-ROM の場合
       tosha を使います。tosha は ports/packages にもあります。(audio/tosha)

    2. SCSI PD の場合
       松下 LF-1000 では tosha-0.6 に以下のパッチが必要です。

   ---ここから---
   *** tosharc  Wed Jan 13 15:37:42 1999
   --- tosharc  Mon Jan 18 22:24:51 1999
   ***************
   *** 66,71 ****
   --- 66,72 ----

     #   This one was tested with "MATSHITA" "PD-1 LF-1001" "A105":

   + "MATSHITA" "PD-1 LF-1000"  "" 0xd8 0 0x00 0 10 0
     "MATSHITA" "PD-1"     ""     0x28 1 0x00 0 10 0

     #   Someone reported the following setting for his
   ---ここまで ---

    3. IDE CD-ROM の場合
       a. dagrab を使います。dagrab は ports/packages にもあります。(audio/dagrab)
          <URL:http://web.tiscalinet.it/marcellou/dagrab.html>
          ただし、一部のCD-ROMドライブにおいて dagrab を用いて取り出しを
          行うと、出力にノイズが混じるという事例が報告されています。
          その場合は、b. の方法を試してみて下さい。

       b. cdda2wav を使います。cdda2wav は ports/packages にもあります。(sysutils/cdrecord)
          <URL:http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html>


管理番号 411 (更新) 更新履歴
Q. PostScript 対応でないプリンタを FreeBSD で使いたいのですが、
   なにか良い方法がありませんか?

A. お使いのプリンタによって、以下の方法があります。

   1. エプソン製のインクジェットプリンタの場合、エプソンコーワが
      配布している PIPS を使うことで、 PostScript プリンタのように
      扱えます。 PIPS は GhostScript の一種で,ports/packages にもあります。
      (japanese/pips*)
      <URL:http://www.epkowa.co.jp/pips/pips.html>
  
   2. その他のプリンタの場合、 Ghostscript を使うことにより
      PostScript プリンタのように扱えるものもあります。

      Ghostscript については、[管理番号 1458] を参照してください。


管理番号 1252 (更新) 更新履歴
Q. tcsh のマニュアルの日本語訳はありますか?

A. tcsh が 4.1-RELEASE から FreeBSD に取り込まれ (て /bin/tcsh となっ)
   たため、man-jp プロジェクトにて日本語マニュアルを作成するようになり
   ました。4.2-RELEASE 以降の日本語マニュアル package に含まれています。


管理番号 1779 (新規) 更新履歴
Q. Web ページの更新のためにインターネットから安全に ftp で接続すべく、
   ssh の port forwarding を使おうと思ってはまりました。パスワードは
   暗号化に成功しますが、データ転送の暗号化がうまくできません。

A. クライアント側の OS によって以下のような方法があります。

   1) Unix

     普通の ftp(1)ssh(1) の TCP port forwarding でちゃんと動かすのは
     面倒なので、hsftp(1) か sftp(1) を使うのがいいでしょう。FreeBSD では、
     どちらも Ports Collection の ports/ftp/hsftp 及び ports/ftp/sftp にあ
     ります。

     hsftp(1) は、内部で ssh(1)scp(1) のフロントエンドとして働き、コピー
     などのコマンドは、ftp(1) とほとんど同じです。ただし ssh-agent(1) など
     を使って、scp(1) をパスワード(パスフレーズ)の入力なしに実行できるよう
     にしておく必要があります。

     sftp(1) も hsftp とほぼ同様ですが、リモート側に sftpserv というプログ
     ラムが必要になります。もし、リモート側にインストールされてなければ、
     交渉して入れてもらうか自分で用意しましょう。なお、OpenSSH についてくる 
     sftp-server(8) は SSH Communications Security 社 の ssh (いわゆる
     「本家ssh」) バージョン2 についてくる sftp に対応するためのもので、
     ports/ftp/sftp についてくる「sftp サーバ」(sftpserv) とは別物です。
     FreeBSD 4.2R からは付属しますが互換性はありません。ややこしいのは、
     どちらも「sftp」を名乗っていることです。

     ftp と比べるとサポートされているコマンドは少ないですが、

     sftp> help
     Supported commands are:
     ?       help    open    close   get     mget    put     mput
     cd      pwd     ls      dir     mdir    mkdir   rmdir   rename
     rm      delete  mdelete lcd     exec    quit    exit    bye
     binary  ascii   image   version

     これぐらいのコマンドが使えます。これは、hsftp でもだいたい同じです。
     また、ports/net/rsync を ssh 経由で使えばディレクトリの内容をまとめて
     アップデートすることができます。

      % rsync -auzvC --delete --rsh=ssh . user@server:public_html

   2) Java

     MindTerm を使えば,FTP-tunneling は簡単に出来ます。もちろん、Control
     port (21/tcp) だけでなく Data port (default:20/tcp) も SSH 経由になり
     ます。SCP の機能も入っているので,そちらを使ってもいいですが,Web ページ
     の更新には FTP が使えたほうが便利です。 

     <URL:http://www.mindbright.se/products/mindterm/>

     v1.2.1 までのライセンスは GPL ですが,v2 以降が GPL になるかどうか決まっ
     ていないようです。v2 以降は SSH2 に対応します。2000年12月現在 v1.9.9pre2
     が,バイナリのみ公開されています。

     JAVA でインプリメントされているので,java1.1 以降に対応した JVM があれ
     ば OS は問いません。こちらでは,Linux, Windows, Macintosh で動作するこ
     とを確認しています。

   3) Windows

     現在では MindTerm を使うのが一番簡単そうな方法ですが、TeraTermPro に 
     ttssh を組み合わせた環境では、scp 機能がないため次のような方法が用いら
     れてきました。

     3-a) 単純に scp をインストールして済ます。

     <URL:http://www.jaist.ac.jp/~uchida-t/ssh/>
     <URL:http://bmrc.berkeley.edu/people/chaffee/winntutil.html#sshnt>

     3-b) Delegate を併用する方法です。

     次の Web ページが TeraTerm + ttssh の使い方として、よくまとまってると
     思います。この中で ftp については「書かないけど」の部分ですね。
     <URL:http://www.netlab.is.tsukuba.ac.jp/~one/ssh/#H>

     以下に [FreeBSD-users-jp 49239] を元に説明します。hostA がローカル側、
     hostB がリモートホスト、[a],[b] は Unix では 1024 以上の空いてる port 
     ですが、Windows では 1024 の制限はないようです。以下の説明では [a]=21,  
     [b]=8021 としています。

     hostA> ssh -L [a]:localhost:[b] -L [b-1]:localhost:[b-1] hostB
      o メニューバー Setup → SSH Forwarding で以下のように設定
           Local 21 to remote "localhost" port 8021
           Local 8020 to remote "localhost" port 8020
      o hostA から hostB に ttssh でログイン

     hostB> delegated -P[b] SERVER=ftp://localhost:21/ RELIABLE=localhost
      o hostB のプロンプトで delegated を実行
        % delegated -P8021 SERVER=ftp://localhost:21/ RELIABLE=localhost

     hostA> ftp -p localhost [a]
      o hostA から localhost の port 21 に passive (PASV) モードで ftp 接続

     Delegate は passive mode だと [b-1] にデータ転送用の port を用意して
     くれるようです。このスレッドには書いてませんが、セキュリティ的には 
     delegated のオプションに TIMEOUT=900 ぐらいはつけておいたほうが吉だと
     思います。

   4) おまけ

     SSL 対応の wu-ftp です。
     <URL:http://www.average.org/ftp/wuftp+SSL/>

     下記の URL に SSL 関係のリンク集がまとまっています。
     <URL:http://www.infoscience.co.jp/technical/openssl/related/apps.html>

     あと、ssh ではないですが Zebedee というのもあります。
     <URL:http://www.geocities.co.jp/SiliconValley/2548/zebedee.html>
     <URL:http://www.winton.org.uk/zebedee/>


管理番号 1302 (更新) 更新履歴
Q. Aterm シリーズの TA でダイアルアップに失敗してしまうのですが。

A. チャットスクリプトの段階で失敗するなら、\\d (2 秒待つ) を付加する
   ことで接続に成功するかもしれません。

   AtermIT40、AtermIT45 では、次のチャットスクリプトでの接続が確認され
   ています。途中で改行していますが、実際は一行に続けて記述します。
   なお、Aterm シリーズ固有の問題なのかどうかは分かっていません。

     set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT$N1=1
     OK-AT-OK \\dATE1Q0 OK \\dATD\\T TIMEOUT 40 CONNECT"

   ただし、FreeBSD 4.1 以降や 3.5 以降では、環境変数を使える様になった
   関係で、AT$N1=1 を AT$$N1=1 や AT\$N1=1 とする必要があります。

     set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT\$N1=1
     OK-AT-OK \\dATE1Q0 OK \\dATD\\T TIMEOUT 40 CONNECT"


管理番号 1624 (更新) 更新履歴
Q. 3.5-RELEASE / 4.1-RELEASE / 5.0-CURRENT にしたら、
   ppp(8) が利用できなくなりました。/var/log/ppp.log を
   見ると

   状況 1. chat script の
        set dial "......"
   の部分に書いた $N1=1 という部分が表示されていません。

   状況 2. 認証のところで
        tun0: Phase: Chap Input: CHALLENGE (16 bytes from denwa)
        tun0: Phase: Chap Output: RESPONSE (xxxxxxx)
        tun0: Phase: Chap Input: FAILURE
   とすぐに失敗してしまいます。

A. /etc/ppp/ppp.conf に "$" 記号が含まれていませんか?
   "$" を "\" でエスケープする必要があります。
   2000/3/21 に、3.0-STABLE/4.0-STABLE/5.0-CURRENT の ppp が変更され、
   "$" で始まる文字列は環境変数への参照とみなされるようになりました。
   FreeBSD 3.5 または 4.1 以降のバージョンをお使いの方は気を付けて下さい。


   状況 1. に対して、具体的には次のような設定の場合、

     set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK
        ATQ0V1X0$N1=1 OK \\dATS7=50&K3 OK ATDT\\T TIMEOUT 30 CONNECT"

   以下のように書き換えなければなりません。

     set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK
        ATQ0V1X0\$N1=1 OK \\dATS7=50&K3 OK ATDT\\T TIMEOUT 30 CONNECT"

   つまり、
     ATQ0V1X0$N1=1 → ATQ0V1X0\$N1=1
   と、"$" を "\" でエスケープしなければいけません。


   状況 2. に対して、authkey の設定されている passward に "$" が
   含まれていませんか。

        set authkey "XXX$XXXX"
        ↓              ^
        set authkey "XXX\$XXXX"
                        ^^
   としてエスケープしなければなりません。


QandA
QandA Project
登録・更新 QandA 一覧