安裝Win32-OpenSSH
下載最新的發(fā)布版本 https://github.com/PowerShell/Win32-OpenSSH/releases
-
解壓到
C:\Program Files\OpenSSH
- 可以將該目錄加入Path
-
以管理員權(quán)限安裝
SSHD
和ssh-agent
服務(wù):powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
-
生成Server Keys并且限制這些文件的訪問權(quán)限涝焙,以管理員權(quán)限運行:
.\ssh-keygen.exe -A powershell.exe -ExecutionPolicy Bypass -File .\FixHostFilePermissions.ps1 -Confirm:$false
-
在Windows防火墻中為SSH服務(wù)器開啟一個port:
- 可以執(zhí)行如下命令:
New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
- 或者直接在防火墻圖形界面中增加一個port 22的規(guī)則。
-
開啟服務(wù):
net start sshd
- 設(shè)置默認開啟服務(wù)
Set-Service sshd -StartupType Automatic Set-Service ssh-agent -StartupType Automatic
-
設(shè)置默認ssh Shell:
在服務(wù)器端的windows registry中設(shè)置ssh的默認shell,Computer\HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH\DefaultShell
registry_for_ssh.png
設(shè)置使用SSH秘鑰登陸
安裝后,可以直接使用用戶名和密碼方式從client登陸到host上:
ssh user@host
要使用密匙登陸需要采用以下步驟來設(shè)置:
在client端:
- 生成key pair (即private client key 和 public client key)
-
在
$HOME
中建立.ssh
目錄mkdir $HOME\.ssh cd $HOME\.ssh
-
生成key pair
ssh-keygen -t rsa -f id_rsa
id_rsa 為key文件名,生成時會提示輸入passphrase來保護private key素跺,也可以為空顷霹。
- 在ssh-agent上注冊private key
-
運行源碼中的
FixUserFilePermissions.ps1
來對進行權(quán)限設(shè)置FixUserFilePermissions.ps1
-
開啟ssh-agent:
net start ssh-agent
-
將key注冊到
ssh-agent
ssh-add id_rsa
-
使用private key來登陸host
ssh -i .\id_rsa user@host
在服務(wù)器端
-
同樣在服務(wù)器端的用戶目錄
$HOME
下建立.ssh\
熊赖,并在其中建立authorized_keys
文件:touch .ssh\authorized_keys mkdir .ssh\other_keys
將之前客戶端上生成的public client key 即
id_rsa.pub
文件疲牵,發(fā)送到host上的$HOME\.ssh\other_keys\
文件夾下承二,在服務(wù)器上,將這個id_ras.pub
內(nèi)容寫入authorized_keys
文件中纲爸。cat .\other_keys\id_rsa.pub > authorized_keys
authorized_keys
文件的編碼要為UTF-8亥鸠,而非windows默認編碼 -
設(shè)置
authorized_keys
的訪問權(quán)限FixUserFilePermissions.ps1