1. 程式人生 > >OpenSSH for Windows 配置

OpenSSH for Windows 配置

記下了配置OpenSSH for Windows為金鑰認證的過程,備忘
———————————————————-
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

[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/home]
"native"="C:\\Program Files\\OpenSSH\\home"
"flags"=dword:0000000a
———————————————————-
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 start opensshd
net stop opensshd
在services.msc裡啟用或停止也可
———————————————————-
10. PuTTY作中端還不錯,就是中文不好辦。
要sftp的話,用WinSCP和FileZilla都行。
WinSCP和FileZilla看及進入中文目錄名/檔名都沒問題,但拷貝等操作報服務端找不到檔案錯誤,
也許和OpenSSH for Windows帶的sftp-server.exe版本低了有關吧(3.x的樣子)
注意cygwin環境下將Windows各磁碟對映為/cygdrive/。