Cygwin安裝及SSH設定教學

wKiom1SP9d3T4s9GAABhvdfEmT4136.jpg

前言
在很多時後,會需要用到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的資料夾

wKioL1SP9qixFpyNAAI6rEXy0GA919.jpg

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

wKiom1SP9jKDgAOfAAPNUi6nGSI180.jpg1.3 把下載好的setup.exe存放到C:\cygwin

wKiom1SP91TQdmYpAAHHr7avJbw539.jpg

1.4 點擊setup.exe開始安裝

wKiom1SP93TivgFVAADxTQcIypk522.jpg

1.5 點選下一步繼續


wKiom1SP94_DeOC4AAFwmtRBkzI605.jpg


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

wKioL1SP-EzDzW4ZAAEadUomjZ0881.jpg

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

wKiom1SP98iScWLzAAGEt0u7fls438.jpg


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

wKiom1SP9-azXQxnAAERi70ltME875.jpg


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

wKioL1SP-KLxhxA5AAEXkQPEL4A872.jpg

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


wKioL1SP-MXQgW15AAFjx5SgoFQ538.jpg

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


1.11 正在連接抓取資料中。

wKioL1SP-RKhz1CoAADv2TkLSPE387.jpg

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

wKioL1SP-UvB9gtHAAK4MUyutaM845.jpg



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

wKiom1SP_umCi6OyAAM6bRCACMg472.jpg


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

Admin cygrunsrv
Net
openssh
Editors
vim

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

Net
openssh

wKiom1SP_zGjUJSzAAFX7FTEaSs682.jpg

Editors vim

wKioL1SP__Gj_SNzAAD3RRpS8cs052.jpg


Admin cygrunsrv

wKiom1SP_2rh2Sb3AAC7sl0JyXc408.jpg

1.14直接點選下一步。

wKiom1SP_4exsaXKAAF3qEYWDS4268.jpg



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

wKiom1SQBjehLXFbAAELcRfM4yE105.jpg

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

wKiom1SQB46w0BYSAABAkKxfyJM269.jpg

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

wKioL1SQCFTT6vvIAAFPcCEI2oo888.jpg

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

接著就會繼續安裝。

wKiom1SQB9yQBYTNAAECFjf0epk376.jpg

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

wKioL1SQCKrx3e5-AAD3R_xKM_o115.jpg

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

wKiom1SQCCXAjyLmAACwH479KHs829.jpg

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


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

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

wKiom1SQCJPCO03iAACMti6Wbpw218.jpg

3.2 【進階】【環境變數】

wKioL1SQCU_Dg6l2AAFsh-IVdrA210.jpg

3.3 點選【新增】
變數名稱: CYGWIN
變數值: ntsec tty 
wKiom1SQCMuw_SYqAAFF5QosM84308.jpg

3.4 新增完成後會在,系統變數內看到剛剛所新增的項目。
wKioL1SQCYjTW63EAAE60-UYS0w789.jpg

3.5 找到Path變數後點選【編輯】
在變數值的最後變加上;c:\cygwin\bin
wKioL1SQCaWR0npSAAFgdcsLA-E254.jpg

3.6 設定完環境變數後就可,點選桌面上的Cygwin開啟
wKiom1SQCR-RsAFxAAAS5jeAy7w297.jpg

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

wKioL1SQCdzgb4fFAADypqrX_jM703.jpg

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


wKiom1SQCV2Cng7BAAE6oP5BnsY810.jpg


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

wKiom1SQCbCBa40_AAITm6HoUL0614.jpg



4.4 New local account ‘sshd’?<yes/no>
再來會提示說要建立一個特殊權限帳號,請輸入YES
wKioL1SQCnWhHRGhAAJTBHSOgvE123.jpg

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)

wKiom1SQCfThAu8mAALV5CwYVNU979.jpg

4.6 設定好ssh-host-config後,再來就是啟動SSH
netstart sshd cygrunsrv --start sshd
wKiom1SQChCh647HAAIJ4o1OSnw930.jpg

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


wKioL1SQCsygv3KaAAHY5kxdZ3o814.jpg


4.8 查詢自己目前的身份(以方便之後登入輸入的帳號)
whoami
wKiom1SQClSwQrvpAAGM5wCC1rI674.jpg

4.9 測試看看本機的SSH是否正常
ssh localhost
or
ssh-vvv localhost
or
ssh $USERNAME@127.0.0.1
-v
表是把所有細節都顯示出來

wKioL1SQCxHyWUeMAAIUejsoU6Y975.jpg


看到下面問題請輸入YES 是在詢問是否要繼續連接
wKiom1SQCpWwbIj5AAAk02I56A8875.jpg

請輸入密碼(密碼為Windows主機登入的密碼,如果沒有設定的話請設定一組)
wKioL1SQC0zC8PzFAAAXR2XwhsM425.jpg

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

wKiom1SQCtHw2-enAAMtPkPd-zo455.jpg

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

wKioL1SQC46i0cFbAADQnfK3jyU963.jpg

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

wKioL1SQC7aBT8dTAAGjGaIgMSE926.jpg

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

wKiom1SQCzOCKta0AACtVa-SjBg917.jpg


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  youname@127.0.0.1
登录自己的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日志有一下报错

wKioL1SSSFuAOyVlAAG93sX5J00781.jpg

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


wKiom1SSSDiR-4i6AAMXIKrnEuA825.jpg