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 >> ..\etc\group 這是加入本地組的指令。
mkgroup -d >> ..\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 >>, not >). If you use both, make sure to edit the file to remove any duplicate entires.
第三、将計算機的使用者與其密碼導入passwd檔案中。與上面的組一樣,也是分本地和域兩種情況。如果沒有該檔案或沒有導入使用者的資訊。作為server的話,将不能被登陸,因為沒有使用者嘛!
mkpasswd -l >> ..\etc\passwd 這是加入本地使用者的指令。
mkpasswd –d >> ..\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 >> ..\etc\group
mkpasswd -l >> ..\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:\> 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 >> .\etc\group
.\bin\mkgroup -d >> .\etc\group
.\bin\mkpasswd -l >> .\etc\passwd
.\bin\mkpasswd -d >> .\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 > 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,如需轉載請自行聯系原作者