Linux
使用 AD 證書從 Windows SSH 到 Linux
我有一台連接到 Active Directory 的 Windows 客戶端電腦和一台也連接到 Active Directory 的 Linux 伺服器(通過帶有 LDAP 的 PAM),我希望能夠從 Windows 到 Linux 進行無密碼 SSH。只要我提供 AD 帳戶的密碼,SSH 就可以正常工作。
我發現以下文章讓我了解了它是如何完成的,但我無法讓它工作:http ://www.moelinux.net/wordpress/?p=95
我嘗試過的是以下內容(基於上述文章):
- ***(在客戶端)***將我的 AD 證書導出到 .PFX 文件中
- 使用以下命令將 .PFX 轉換為 id_rsa 文件: openssl pkcs12 -in somefile.pfx -out id_rsa
- 使用以下命令去除密碼的 id_rsa:openssl rsa -in id_rsa -out id_rsa
- 使用以下命令生成公鑰:ssh-keygen -y -f id_rsa > id_rsa.pub
- ***(在伺服器上)***與上面相同的常式,所以我在客戶端和伺服器上有相同的 ~/.ssh/id_rsa 和 ~/.ssh/id_rsa.pub。
正如您可能猜到的那樣,這是行不通的。我仍然需要輸入我的密碼。我可能哪裡出錯了?
(我真正想要完成的是設置一種使用 AD 帳戶從 Windows 連接到 Linux 的方法,盡可能無縫。這似乎是最好的方法,但如果有其他方法,我願意想法:-))
您將 X.509 證書與 RSA 密鑰混淆了。它們是完全不同的 PKI 實現。但是,由於您的客戶端和 SSH 伺服器都是域成員,我想說忘記密鑰並使用 Kerberos/GSSAPI。在
/etc/ssh/sshd_config
伺服器上,您應該找到一個指令GSSAPIAuthentication
,取消註釋並將值更改為yes
。保存更改後重新啟動 SSH 守護程序。對於客戶端,您需要最新的 PuTTY (0.61) 或 OpenSSH。PuTTY 預設啟用 GSSAPI,因此只需輸入SSH 伺服器的主機名(IP 地址無效)並點擊連接。