Cygwin安裝及SSH設定教學

Cygwin安裝及SSH設定教學

前言
在很多時後,會需要用到LINUX但是偏偏就只有WINDOWS主機,因此在這個時後就可以安裝Cygwin來做相關的使用。而不用在特意的裝一台linux主機。

一、Cygwin介紹 :
Cygwin
是許多自由軟體的集合,最初由Cygnus Solutions開發,用於各種版本的MicrosoftWindows上,執行UNIX類系統。Cygwin的主要目的是透過重新編譯,將POSIX系統(例如LinuxBSD,以及其他Unix系統)上的軟體移植到Windows上。Cygwin移植工作在WindowsNTWindows 2000WindowsXPWindows7WindowsServer 2003Windows Server 2008上,目前CygwinRedHat等負責維護。











二、安裝
1.
安裝cygwin
1.1
C:\建立一個cygwin的資料夾

Cygwin安裝及SSH設定教學

1.2 cygwin的官網下載最新的版本http://www.cygwin.com/
也可直接下載 http://cygwin.com/setup.exe

Cygwin安裝及SSH設定教學1.3 把下載好的setup.exe存放到C:\cygwin

Cygwin安裝及SSH設定教學

1.4 點擊setup.exe開始安裝

Cygwin安裝及SSH設定教學

1.5 點選下一步繼續


Cygwin安裝及SSH設定教學


1.6 選擇安裝所需程式來源的方法
Install from Internet :
直接下載所需程式並立即安裝
Download from Internet :
僅下載所需程式而不安裝
Install from Local Directory :
安裝所需程式已先儲存在個人電腦,不需下載可直接安裝。
在這邊我們選擇【nstallfrom Internet

Cygwin安裝及SSH設定教學

1.7 選擇所要安裝的目的目錄
這邊我們直接使用預設路徑C:\cygwin。也可點選【Browse】自行更換安裝路徑
Install for
為使用者權限選擇。建議選擇【All Users

Cygwin安裝及SSH設定教學


1.8 選擇安裝時做為儲存下載程式的儲存目錄
安裝所需的各式種類的程式會先被儲存到儲存目錄中,在這邊我們設定為C:\cygwin

Cygwin安裝及SSH設定教學


1.9 選擇網路連接的方式
如果Windows已經是連上網的的狀態時,建議選擇DirectConnection

Cygwin安裝及SSH設定教學

1.10 選擇程式來源網站
這些來源網站都儲存安裝所需的各類程式。但有時也會遇到檔案有問題或是不齊全的情況發生,這邊會比較建議選擇台灣的ftp或是http做為程式來源的網站。若在安裝中出現下載的問題,可重新選擇其他的來源在安裝一次。


Cygwin安裝及SSH設定教學

这里根据实际情况,一般填写163的节点。


1.11 正在連接抓取資料中。

Cygwin安裝及SSH設定教學

1.12 選擇所要安裝的套件。
這邊可以點選右上方紅框內的View來切換模式

Cygwin安裝及SSH設定教學



1.13 點選view後會發現所有套件的名稱都會出現,也會依英文字母來排列。

Cygwin安裝及SSH設定教學


这边根据使用情况选择安装包,若同步用一般选择openssh,rsync,vim,cgyserver等几个。

Admin cygrunsrv
Net
openssh
Editors
vim

可以在上方紅框內輸入想要查詢的套件名稱
然後找到該套件後點選前方的Skip,使其改變狀態。

Net
openssh

Cygwin安裝及SSH設定教學

Editors vim

Cygwin安裝及SSH設定教學


Admin cygrunsrv

Cygwin安裝及SSH設定教學

1.14直接點選下一步。

Cygwin安裝及SSH設定教學



1.15 
顯示安裝進度,需要一點時間請稍後。

Cygwin安裝及SSH設定教學

1.16 若在安裝過程中出現下圖提示。請重新選擇來源

Cygwin安裝及SSH設定教學

1.17 更換來源後點選下一步繼續

Cygwin安裝及SSH設定教學

1.18 然後會看到要選取的套件選單,因為剛剛已經選好了,所以就直接下一步就可以。

接著就會繼續安裝。

Cygwin安裝及SSH設定教學

1.19 安裝完成
安裝完成前,可設定是否在桌面產生圖示或排列在開始的程式集中。

Cygwin安裝及SSH設定教學

2. 設定Windows密碼
2.1
這邊會建立使用者能設定一下密碼,一來不容易被別人使用。二來才不會到時因沒設定密碼而要修改設定檔,才可連線。所以這邊會希望能先建立好密碼。
【我的電腦】【右鍵(管理)

Cygwin安裝及SSH設定教學

2.2【本機使用者和群組】【使用者】【點選要設定的帳號(:Administrator)【右鍵設定密码】


3. 設定環境變數( 沒設也可以??????????????? )

3.1 點選【我的電腦】【右鍵內容】

Cygwin安裝及SSH設定教學

3.2 【進階】【環境變數】

Cygwin安裝及SSH設定教學

3.3 點選【新增】
變數名稱: CYGWIN
變數值: ntsec tty 
Cygwin安裝及SSH設定教學

3.4 新增完成後會在,系統變數內看到剛剛所新增的項目。
Cygwin安裝及SSH設定教學

3.5 找到Path變數後點選【編輯】
在變數值的最後變加上;c:\cygwin\bin
Cygwin安裝及SSH設定教學

3.6 設定完環境變數後就可,點選桌面上的Cygwin開啟
Cygwin安裝及SSH設定教學

4. sshd的相關設定
4.1
下圖為開啟的畫面

Cygwin安裝及SSH設定教學

4.2 Cygwin最近所發布,有些會有權限問題。因此這邊會建議最後把以下指令都操作一次
chmod+r /etc/passwd 
chmod u+w /etc/passwd
chmod +r /etc/group
chmod u+w /etc/group
chmod 755 /var 
touch /var/log/sshd.log
chmod 664 /var/log/sshd.log


Cygwin安裝及SSH設定教學


4.3 再來設定ssh-host-config
輸入下列指令
ssh-host-config
輸入後系統會自動產生一些檔案。
Should privilege separation be used? <yes/no>
接著詢問是否要開啟【權限分離】的功能,在其他系統中安裝OpenSSH時是自動開啟的,因此你可輸入【YES

Cygwin安裝及SSH設定教學



4.4 New local account ‘sshd’?<yes/no>
再來會提示說要建立一個特殊權限帳號,請輸入YES
Cygwin安裝及SSH設定教學

4.5 <Say “no” if it is already installed as aservice> <yes/no>
詢問你是否將SSHD作為服物來執行。如此一來不管Cygwin是否有開啟,都可以使使用ssh。請輸入yes
Enter the value of CYGWIN for the daemon:[]
接下來會要求為這個服務輸入一個名稱,可按enter使用預設的(預設為ntsec)

Cygwin安裝及SSH設定教學

4.6 設定好ssh-host-config後,再來就是啟動SSH
netstart sshd cygrunsrv --start sshd
Cygwin安裝及SSH設定教學

4.7 再來設定讓Windows本機的帳密和cygwin同步
mkpasswd-cl > /etc/passwd
mkgroup --local > /etc/group


Cygwin安裝及SSH設定教學


4.8 查詢自己目前的身份(以方便之後登入輸入的帳號)
whoami
Cygwin安裝及SSH設定教學

4.9 測試看看本機的SSH是否正常
ssh localhost
or
ssh-vvv localhost
or
ssh [email protected]
-v
表是把所有細節都顯示出來

Cygwin安裝及SSH設定教學


看到下面問題請輸入YES 是在詢問是否要繼續連接
Cygwin安裝及SSH設定教學

請輸入密碼(密碼為Windows主機登入的密碼,如果沒有設定的話請設定一組)
Cygwin安裝及SSH設定教學

5. 防火牆的設定
5.1請到【控制台】windows防火牆】【例外】【新增連接】

Cygwin安裝及SSH設定教學

5.2 名稱 : 可自行輸入
連接阜編號: 22(如果有改port號的話就輸入修改的port)

Cygwin安裝及SSH設定教學

5.3 設定完後就會在程式和服務看到剛剛所建立的設定。

Cygwin安裝及SSH設定教學

5.4 在來用別台電腦的putty來連線看看是否可以正常登入。

Cygwin安裝及SSH設定教學


http://harmony.relax.blogbus.com/logs/29999880.html


啟用 sshd

ssh-host-config

Should privilege separation be used?(yes/no) no
Do you want toinstall sshd as service? (yes/no) yes
CYGWIN= 
(直接按 Enter 鍵接受預設值 "ntsec")

cygrunsrv --start sshd 啟動 sshd 服務

sshd 預設 tcp 22 port 變更成其他埠號的方法

cd /etc
notepad sshd_config
 → Port 22 改成 Port 80
cygrunsrv --stopsshd && cygrunsrv --start sshd 重新啟動 sshd service

/etc/sshd_config owner system, 須先變更 owner: chown $USER sshd_config 才能編輯 sshd_config. 修改完後記得將 owner 回復為 system: chown system sshd_config, 最後再重新啟動 sshd service 即可

調整 Windows 防火牆設定

控制台 → Windows 防火牆例外新增連接埠

名稱cygwin-sshd (或其他自己喜歡的名稱), 連接埠編號22 (TCP) (若已改成 80 port, 就填入 80)

如要限制連入 sshd 的來源 IP, 可另外加裝 tcp_wrappers package ( Net 類別裡)



http://bbs.wuyou.com/viewthread.php?tid=119296

二、Openssh基本配置
1.增加环境变量
用鼠标右键单击我的电脑 à属性 à高级 à环境变量,
A.在系统变量框中新建变量名为:CYGWIN,变量值为:ntsec tty 的变量。
B.编辑path变量,在原变量值后加上以分号分隔的C:\Cygwin\bin字符串,注意保留原变量的值!
2OpenSSH服务配置
双击Cygwin图标打开控制台,键入:cd /bin转入bin目录,再键入:ssh-host-config-y,执行后系统提示“CYGWIN=” 时输入ntsectty即可。至此,SSH服务已被加入到Windows的自动启动服务项中了。
重新启动电脑进入普通用户界面,打开Cygwin控制台后,系统会在Cygwin的home目录下生成一个同名目录:youname (此处假设用户名为:youname),用户可以在command控制台上用:
ssh  [email protected]
登录自己的SSH服务器试一试,若能登录则表示安装配置基本成功,可以进行远程登录连接,若远程登录失败,应在SSH服务器防火墙的例外中添加允许SSH端口通过的条目,SSH服务默认使用的是22号端口。
3.启动OpenSSH服务的方法
A.在command控制台上启动:
Net  start  sshd    #启动SSH服务
Net  stop  sshd     #停止SSH服务
B.在Cygwin控制台上启动:
Cygwin  --start  sshd     #启动SSH服务
Cygwin  --stop  sshd      #停止SSH服务
三、Openssh高级配置
提示:A. 修改sshd_config 文件前应先通过Cygwin控制台修改文件属性值,使当前用户具有修改权:
cd /etc                  #转到sshd_config文件所在目录
Chmod 777sshd_config      #修改文件属性值,使其他用户可以修改该文件
。。。。。                #然后参照后面介绍的1、2、3条进行操作
Chmod 644sshd_config      #修改文件属性,使其恢复原来的属性值
B. sshd_config文件被修改后,必须重启SSH服务后改动项才能生效。
1.更改OpenSSH工作端口及协议版本

用写字板打开C:\Cygwin\etc\sshd_config文件,将port 22改为port 10022或其它自己想改的端口号,最好选1025 -- 65535之间其它软件未用的端口号。再将#Protocol 2,1 改为Protocol 2,使当前的SSH服务只支持2.0协议版本。此两项更改的目的是为了增强系统的安全性。

2禁止超级用户远程登录OpenSSH

用写字板打开 C:\Cygwin\etc\sshd_config 文件,将#PermitRootLogin yes 修改为PermitRootLogin no即可。若系统需要超级用户登录,则不必修改此项目。

3.仅使用非对称**安全登录

A用写字板打开 C:\Cygwin\etc\sshd_config 文件,将#PasswordAuthentication yes 修改为PasswordAuthentication no 。

B在Cygwin控制台:

cd/home/youname      #转到当前用户目录

mkdir .ssh           #建立 .ssh隐含目录

C将制作好的authorized_keys公钥文件复制到c:\Cygwin\home\youname\.ssh目录下

D在Cygwin控制台:

cd/home/youname/.ssh    #转到 .ssh隐含目录

chmod 600authorized_keys   #修改文件属性使之生效(注:属性值大于600时该文件无效)
此后用户远程访问ssh服务器时,将不能凭用户密码登录,只能凭借对应的私钥来登录,排除了密码登录





如果出现password可以登录 但是加key后登录不上wwindows日志有一下报错

Cygwin安裝及SSH設定教學

可以通过修改cgywin_sshd这个服务的启动帐号来解决


Cygwin安裝及SSH設定教學