2022/10/12 Updated by
[Up] Japanese English

cygwin

sshサーバを起動する


  1. cygwinインストール時に unzip, zip, openssh, openssl を選択しておく
  2.   [必要なパッケージ]
      (Archive)
        unzip
        zip
      (Net)
        openssh
        openssl
    
  3. cygwinの起動バッチファイルをシェル変数 CYGWIN の値を設定するように変更する。
  4.  /cygwin64/cygwin.bat に
      set CYGWIN=binmode ntsec tty
    を加える
    
  5. 管理者権限で起動した cygwin 中でssh-host-configを起動し、次のように設定する。
  6. $ ssh-host-config   
      Strict mode? -> no   
      new local account 'sshd'? -> yes   
      Install sshd as a service? -> yes   
      Enter the value of CYGWIN for the daemon? --> binmode ntsec   
      'cyg_server' will only be used by resistrered services.
        do you want to use different name? --> no   
      create new privileged user account 'MSI\cyg_server' --> yes   
      Enter password: パスワード   
    
  7. パスワードを変更するときは cyg_server というユーザのパスワードもまた変更しなくてはいけないことを忘れるな。
  8. ssh サーバ (sshd)を起動する。
  9. cyg_server アカウントの下で
      net start cygsshd
        または
      cygrunsrv -S cygsshd
    を動作させる。(reboot の後は自動で起動するようになる)
    [注意] サービス名が変更された (昔) sshd → (今) cygsshd
    
  10. Windowsの設定で ファイアウォールの tcp 22番ポートを開ける。
  11. コントロール・パネル
      →「システムとセキュリティ」
      →「Windowsファイアウォール」
      →「詳細設定」
      →「ローカルコンピュータのセキュリティ」から
      →「受信の規則」を選択し、右のペインから「新しい規則...」をクリック。
      →「規則の種類」から「ポート」を選択。次へ。
      →「プロトコルおよびポート」から  「TCP」「特定のローカルポート」 「22」 を選択。次へ。
      →名前は ssh。説明は空白。
    
    スタートメニュー
      → 設定
      → 更新とセキュリティ
      → Windowsセキュリティ
      → ファイアウォールとネットワークの保護
      → ファイアウォールによるアプリケーションの許可
      → 上のメニューの「コントロールパネル
          → システムとセキュリティ 
          → Windows Defender ファイアウォール
          → 「許可されたアプリ」から「コントロールパネル」をクリックする。
    あとは上の設定にしたがって変更する。
    
  12. 外部からsshで接続してみる。接続できれば正しく動作している。
  13.   他のWindowsマシンのcygwinから
        ssh  ユーザ名@IPアドレス
        (例) ssh [email protected]
    

Windows 11

ssh-host-config を起動した場合のlog
$ ssh-host-config

*** Info: Generating missing SSH host keys
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
*** Info: Creating default /etc/ssh_config file
*** Info: Creating default /etc/sshd_config file

*** Info: StrictModes is set to 'yes' by default.
*** Info: This is the recommended setting, but it requires that the POSIX
*** Info: permissions of the user's home directory, the user's .ssh
*** Info: directory, and the user's ssh key files are tight so that
*** Info: only the user has write permissions.
*** Info: On the other hand, StrictModes don't work well with default
*** Info: Windows permissions of a home directory mounted with the
*** Info: 'noacl' option, and they don't work at all if the home
*** Info: directory is on a FAT or FAT32 partition.
*** Query: Should StrictModes be used? (yes/no) no
*** Info: Updating /etc/sshd_config file

*** Query: Do you want to install sshd as a service?
*** Query: (Say "no" if it is already installed as a service) (yes/no) yes
*** Query: Enter the value of CYGWIN for the daemon: [] binmode ntsec

*** Info: The sshd service has been installed under the LocalSystem
*** Info: account (also known as SYSTEM). To start the service now, call
*** Info: `net start cygsshd' or `cygrunsrv -S cygsshd'.  Otherwise, it
*** Info: will start automatically after the next reboot.

*** Info: Host configuration finished. Have fun!

nitta@gtunes3 ~