トップ 一覧 置換 検索 ヘルプ RSS ログイン

gnupackでSSHサーバを立てるの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!はじめに
cygwin 1.7 から使いやすくなってきた。
レジストリを使わないため、ポータブルツールとして持ち運ぶこともできる。

X-Window に関しては、日本語入力に難有り。
日本語入力するには、色々設定する必要あり。

!!!インストール
http://www.cygwin.com/
から、setup.exe をダウンロードして実行。
http://d.hatena.ne.jp/mikenekoDX/20121012/1350030447
 ssh-host-config
で設定開始。
 /etc/passwd
 /etc/group
 /var
のパーミッションがおかしいとインストール途中で止まるので注意。
その場合は、画面の指示にしたがってパーミッションを変更する。

!!パッケージ選択
!admin
*cygrunsrv
!archive
*unzip
*zip
!Devel
*make
*gcc関連
*gcc4関連(必要なら)
*mingw-gcc関連(必要なら)
*ruby
*subversion
!Editor
*vim関連
*xemacs関連(Xを入れる場合)
!Libs
*W32api
!Net
*inetutils
*openssh
*rsync
!Perl
*perl のみ
!Python
*python のみ
!shell
*tcsh
*zsh
!web
*wget
!X11
*全て(Xを入れる場合)
!!!起動
サービスとしてインストールした場合は、サービスから起動する。
コマンドからサービスを起動する場合は
 net start "cygwin sshd"
で起動する。

!!バッチファイル作成
!bash
 @echo off
 cd bin
 bash --login -i

!tcsh
 @echo off
 cd bin
 tcsh -l

!!!設定
!!設定ファイルバックアップシェル
 #!/bin/sh
 
 if [ -e "$1" ]; then
  dir=.
  if [ "$2" != "" ]; then
   dir=$2
  fi
  op=
  if [ -d "$1" ]; then
   op=-r
  fi 
 
  tofile=$dir/$1_$(date +%Y%m%d_%H%M%S)
  cp -p $op $1 $tofile
  echo "backup to $tofile"
 fi
!!home の設定
昔設定したHOMEのファイル
{{ref home.zip}}
これを参考にテキトウにいじる

!DISPLAY環境変数
cygwin以外のXサーバ(例えば、Xmingとか)を使う場合は、
 export DISPLAY=localhost:0.0
を.bashrcとかに書いておくといいかも。

!!apt-cyg の設定
apt-cyg でパッケージ管理をすると楽
http://nukino.github.com/blog/2012/02/02/Cygwin/
http://d.hatena.ne.jp/takuya_1st/20110205/1296887435
 wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg 
 mv apt-cyg  /usr/bin
 chmod +x /usr/bin/apt-cyg

,,
,パッケージを探す,apt-cyg find
,インストール済の一覧,apt-cyg show
,インストールする,apt-cyg install パッケージ名
,アンインストールする,apt-cyg remove パッケージ名

標準のままだと、パッケージ名の大文字小文字を判別する。
そのままだと使いにくいので
apt-cygの 244行と247行のawk に
 -v IGNORECASE=1
を渡す。
echo ""
    241     do
    242       echo ""
    243       echo Searching for installed packages matching $pkg:
    244       awk -v IGNORECASE=1 '/[^ ]+ [^ ]+ 0/ {if ($1 ~ query) print $1}' query="$pkg"    244  /etc/setup/installed.db
    245       echo ""
    246       echo Searching for installable packages matching $pkg:
    247       cat setup.ini | awk -v query="$pkg"  -v IGNORECASE=1 \
    248         'BEGIN{RS="\n\n@ "; FS="\n"; ORS="\n"} {if ($1 ~ query) {print $1}}'
    249     done

!setup.ini が 404 Not Found になる場合
http://rcmdnk.github.io/blog/2013/08/08/computer-windows-cygwin/
パッケージのサイトのディレクトリ構成が変更されたため、setup.ini が見つからない場合がある。

新しいディレクトリ構成に合わせて apt-cyg を作成してくれた方がいるので、有難く利用させていただく。
{{ref apt-cyg}}
を適当なパスにコピーする。あとは今までどおり使う。

!!sshd の設定
!インストール
 $ssh-host-config
 ....
 権限を分離するか?
 *** Query: Should privilege separation be used? (yes/no)  yes
 ....
 ローカルに sshd ユーザを作成するか?
 *** Query: new local account 'sshd'? (yes/no) yes
 ....
 サービスを作成するか?
 *** Query: Do you want to install sshd as a service?
 *** Query: (Say "no" if it is already installed as a service) (yes/no) yes
 ...
 CYGWIN 環境変数の値( ntsec を設定する)
 *** Query: Enter the value of CYGWIN for the daemon: [] ntsec

!ログイン時のメッセージ
 /etc/motd
の内容を編集する。
このファイルを読み込みたくない場合は、
/etc/sshd_conf
 PrintMotd no
にする。
!アクセス制限をする場合
/etc/hosts.allow
 sshd: localhost
どこからでも接続可能にするには
 sshd: ALL
/etc/hosts.deny
 ALL:ALL EXCEPT localhost:DENY
など

!!!アンインストール
*cygrunsrv -L でサービスを確認
*cygrunsrv -E  で上記で確認したサービスを止める
*cygrunsrv -R  で上記で確認したサービスを消す
*sshd ユーザをWindowsから削除(sshd を設定した場合)
*以下のレジストリを削除
**[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions]
**[HKEY_CURRENT_USER\Software\Cygnus Solutions]
*Cygwin のディレクトリを削除する

!!!ポータブル
持ち歩く場合は、その環境ごとに
 /etc/passwd
 /etc/group
を書き換える必要がある
 mkpasswd -l > /etc/passwd
 mkgroup -l > /etc/group

ドメインユーザの場合は
 mkpasswd -d -u ドメインユーザ >> /etc/password
 mkgroup -d -g "Domain Users" >> /etc/group
*sshd ユーザをWindowsから削除(sshd ユーザを作成した場合)

{{category2 ツール,Cygwin}}