天天看點

OpenSSH for windows 與ssh windows

OpenSSH for windows 與ssh windows

<a target="_blank">在這裡下載下傳</a>

2.安裝

3.配置

第一、打開一個ms-dos終端,進入C:\Program Files\OpenSSH\bin目錄。(安裝完openssh後,發現多了幾個在linux中常用的指令,如:ls、mkdir、rm、chmod、chown等,很有親切感!)

第二、将計算機上的組導入group檔案中。這裡分兩種情況,第一種是本地,第二種是在域中。分别運作-l和-d參數。如果想将兩種組都導入,可以先運作-l的參數再運作-d參數的指令。

mkgroup -l &gt;&gt; ..\etc\group        這是加入本地組的指令。

mkgroup -d &gt;&gt; ..\etc\group       這是加入域組的指令。

原文:

Use mkgroup to create a group permissions file. For local groups, use the "-l" switch. For domain groups, use the "-d" switch.

For both domain and local, it is best to run the command twice (remember to use &gt;&gt;, not &gt;). If you use both, make sure to edit the file to remove any duplicate entires.

第三、将計算機的使用者與其密碼導入passwd檔案中。與上面的組一樣,也是分本地和域兩種情況。如果沒有該檔案或沒有導入使用者的資訊。作為server的話,将不能被登陸,因為沒有使用者嘛!

mkpasswd -l &gt;&gt; ..\etc\passwd      這是加入本地使用者的指令。

mkpasswd –d &gt;&gt; ..\etc\passwd      這是加入域使用者的指令。

Use mkpasswd to add authorized users into the passwd file. For local users, use the "-l" switch. For domain users, use the "-d" switch.

mkgroup -l &gt;&gt; ..\etc\group        

 mkpasswd -l &gt;&gt; ..\etc\passwd

4.啟動OpenSSH server

net start opensshd

關閉指令是:net stop opensshd

5.使用

ssh -p端口使用者名@對方主機IP

sftp -p端口使用者名@對方主機IP

scp -p端口使用者名@對方主機IP:檔案路徑.

注意:端口預設是22,是以一般不用加-p參數。要更改端口可以在etc/sshd_config中更改。

注意:cmd下改變改變位置的方式是:C:\&gt; D:或E:

6.出現的問題

輸入“ssh -p端口使用者名@對方主機IP”後出現如下警告提示:

“Could not create directory '/home/Administrator/.ssh”不過依然可以正常登陸,而網上的說法是:這是由于目錄/home/Administrator/.ssh不存在造成的,在Windows 2000 and XP中,/home預設是在C:\Documents and Settings;在Windows NT 4.0中,/home預設是在C:\WINNT\Profiles,但我安裝完檢視了系統資料庫,/home目錄的預設值卻為

修改系統資料庫,把它改為D:\svn\openssh\home(home目錄也可以放在其它地方,随你喜歡)

運作(R)裡輸入regedit,打開系統資料庫,然後找到如下項,修改之即可。

[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/home]

"native"="D:\\svn\\OpenSSH\\home"

"flags"=dword:0000000a

把"native"改成你自己的/home所在目錄,此目錄就是預設的登陸目錄,比如使用者名:Administrator那你進入的目錄是/home/Administrator(注:更改目錄後要建立對應的目錄,并且使用者名的目錄也要建立)

  修改完了系統資料庫之後,在D:\svn\OpenSSH目錄上建立home目錄、使用者目錄以adminstrator為例

cd D:\svn\OpenSSH

md home

md home\Administrator

md home\Administrator\.ssh //注意,此目錄隻能在指令行下生成,不信你試下

   還要說明一下的是:當使用者登陸成功後,會在/home/[使用者名]/.ssh目錄下行成一個known_hosts檔案,裡面包存的是公鑰的認證内容,但奇怪的是我發現隻有administrator/.ssh目錄下才有而已,這個我就不知道了。

7.設定基于密鑰認證的方式通路,可實作自動登陸。(密鑰認證以前實作過,下面的内容我就不具體實踐了)

----------------------------------------------------------

1).建立一個Windows使用者ssh專用來SSH遠端登陸。

可以在本地安全政策中設定禁止ssh本地登陸,不過這樣以來單機調試就不友善了。

2).生成使用者資訊。這裡是生成了所有使用者的資訊,當然隻指定使用者ssh也行

.\bin\mkgroup -l &gt;&gt; .\etc\group

.\bin\mkgroup -d &gt;&gt; .\etc\group

.\bin\mkpasswd -l &gt;&gt; .\etc\passwd

.\bin\mkpasswd -d &gt;&gt; .\etc\passwd

3).生成使用者ssh的home目錄

mkdir home

cd home

mkdir ssh

cd ssh

mkdir .ssh

4).修改cygwin環境預設的home目錄

Windows Registry Editor Version 5.00

"native"="C:\\Program Files\\OpenSSH\\home"

5).生成密鑰

cd bin

mkdir keys

ssh-keygen -t rsa -b 2048 -f keys\rsa2048 -C "This is passphrase hint" -N "This is passphrase"

mkdir keys\.ssh

cat rsa2048.pub &gt; keys\.ssh\authorized_keys

6).将上面生成私轉為SSH用戶端可使用格式,這裡用PuTTY,可用PuTTYgen轉為PuTTY用的PPK格式

7).将OpenSSH設定為隻接受密鑰認證。

這裡額外開了sftp服務。另外,StrictModes no選項将告訴OpenSSH不檢查使用者ssh的home目錄的權限設定

Protocol 2

Port 22

HostKey /etc/ssh_host_rsa_key

PermitRootLogin no

PermitEmptyPasswords no

StrictModes no

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

#IgnoreUserKnownHosts yes

PasswordAuthentication no

UsePAM no

UsePrivilegeSeparation no

MaxStartups 10:30:60

Subsystem sftp /usr/sbin/sftp-server

8).設定路由器NAT和軟體防火牆

NAT設定了映射22号端口的TCP包。

軟體防火牆設定允許C:\Program Files\OpenSSH\usr\sbin\sshd.exe偵聽TCP port 22。

9).基本上差不多了,要啟用或停止OpenSSH服務可

net stop opensshd

在services.msc裡啟用或停止也可

10). PuTTY作中端還不錯,就是中文不好辦。

要sftp的話,用WinSCP和FileZilla都行。

WinSCP和FileZilla看及進入中文目錄名/檔案名都沒問題,但拷貝等操作報服務端找不到檔案錯誤,

也許和OpenSSH for Windows帶的sftp-server.exe版本低了有關吧(3.x的樣子)

注意cygwin環境下将Windows各磁盤映射為/cygdrive/

本文轉自leonardos51CTO部落格,原文連結: http://blog.51cto.com/leomars/1211702,如需轉載請自行聯系原作者

繼續閱讀