天天看點

使用Credssp認證處理多跳授權

如圖所示:

C主機上有一個共享目錄,通過A主機遠端的B主機上執行複制C主機上的這個共享目錄到B主機,這種情況叫做多跳授權方式。

憑據安全服務提供者(CredSSP,Credential Security Service Provider)是全新的安全服務提供者,用于将使用者憑據委派到應用程式中,以實作從用戶端到目标伺服器的認證。Windows 遠端管理(WinRM,Windows Remote Management)支援的多跳(Multi-hop)使用CredSSP實作認證。從PowerShell 2.0開始,遠端管理是建構于WinRM的,是以可以使用CredSSP實作多跳授權。

<a href="http://lixiaosong.blog.51cto.com/attachment/201405/25/705126_1400986896KnwA.png" target="_blank"></a>

舉例說明:我們部署一個zabbix agent共享目錄以期批量部署。但遠端複制的過程失敗了如下圖 所示:

<a href="http://lixiaosong.blog.51cto.com/attachment/201405/25/705126_1400986897JStY.png" target="_blank"></a>

指令是從遠端線程嘗試通路檔案共享時出錯的,由于使用的是主機A通路主機B時使用的主機B的憑據,而不是主機B通路檔案伺服器主機C時使用的憑據。是以可以推測如果能有方法從用戶端主機A傳遞或委派可通路檔案伺服器主機C的憑據就能成功建立目标檔案,這就是為何稱之為多跳授權以及PowerShell遠端管理通過CredSSP實作多跳授權,下面就引入委派憑據的概念:

委派憑據   

用于建立遠端線程的cmdlet——Invoke-Command,Enter-PSSession和New-PSSession都有一個-Authentication參數用于将授權模式指定為CredSSP。而在使用這個參數之前,需要首先在參與多跳授權的多台主機上啟用CredSSP,而在啟用CredSSP之前需要指定角色——Client或者Server——當然Client是遠端線程初始化的主機,也就是這裡的主機A;Server是多跳授權觸發的主機,相當于跳闆,也就是這裡的主機B。

PowerShell 2.0提供了如下的cmdlet用于管理CredSSP授權:

1. Enable-WSManCredSSP

2. Disable-WSManCredSSP

3. Get-WSManCredSSP

成功舉例

域環境:

1A主機被遠端端:

Enable-WSManCredSSP -role server

<a href="http://lixiaosong.blog.51cto.com/attachment/201405/25/705126_1400986897UJQl.png" target="_blank"></a>

2 B主機遠端端:

Enable-WSManCredSSP -role client -DelegateComputer "lyncent01"

3 C主機上有一個zabbix2.2.2的共享目錄

4 在B主機上執行遠端複制操作:

<a href="http://lixiaosong.blog.51cto.com/attachment/201405/25/705126_1400986898oTC2.png" target="_blank"></a>

發現A主機上已經有了說明複制成功了:

<a href="http://lixiaosong.blog.51cto.com/attachment/201405/25/705126_14009868985VqR.png" target="_blank"></a>

本文轉自handsome7038 51CTO部落格,原文連結:http://blog.51cto.com/lixiaosong/1416801

繼續閱讀