如何將使用PuTTYgen(Windows)生成的SSH密鑰對轉換爲ssh-agent和Keychain(Linux)使用的密鑰對

我使用PuTTYgen生成密鑰對並使用Pageant登陸,所以我必須在系統啓動時輸入一次密碼短語。 html

我如何在Linux中實現這一目標? 我據說過keychain但我據說它使用了不一樣的密鑰對格式 - 我不想更改個人Windows密鑰,若是我能夠在Windows和Linux中以相同的方式無縫鏈接,那就太好了。 node


#1樓

若是您擁有的是PuTTY樣式格式的用戶公鑰,您能夠將其轉換爲標準的openssh格式,以下所示: linux

ssh-keygen -i -f keyfile.pub > newkeyfile.pub

參考

文章副本

我一直忘了這個,因此我要在這裏寫。 非極客,只是繼續走路。 web

在Windows上製做密鑰的最經常使用方法是使用Putty / Puttygen。 Puttygen提供了一個簡潔的實用程序來將linux私鑰轉換爲Putty格式。 可是,未解決的問題是,當您使用puttygen保存公鑰時,它將沒法在Linux服務器上運行。 Windows將一些數據放在不一樣的區域並添加換行符。 shell

解決方案:當您在puttygen中建立密鑰對時進入公鑰屏幕,複製公鑰並將其粘貼到擴展名爲.pub的文本文件中。 閱讀這樣的帖子,你會節省系統管理員數小時的挫敗感。 bash

可是,系統管理員,你老是獲得一個不會在auth日誌中拋出錯誤消息的密鑰文件,除了找不到密鑰,嘗試密碼; 即便其餘人的鑰匙工做正常,你已經將這個鑰匙發回給用戶15次。 服務器

ssh-keygen -i -f keyfile.pub > newkeyfile.pub

應該將現有的puttygen公鑰轉換爲OpenSSH格式。 ssh


#2樓

我想TCSgrad試圖問的問題(幾年前)是如何使Linux的行爲與他的Windows機器同樣。 也就是說,存在代理(選美),其保存私鑰的解密副本,使得密碼只須要被放入一次。 而後,ssh客戶端putty能夠登陸到其公鑰被列爲「已受權」而沒有密碼提示的計算機。 spa

這樣作的模擬是, 做爲ssh客戶端的 Linux有一個持有解密私鑰的代理,這樣當TCSgrad鍵入「ssh host」時,ssh命令將獲取他的私鑰,而且不會被提示輸入密碼。 固然,主機必須在〜/ .ssh / authorized_keys中保存公鑰。 代理

這個場景的Linux模擬是使用ssh-agent(選美模擬)和ssh-add(模擬爲加入尋呼的私鑰)完成的。

對我有用的方法是使用:$ ssh-agent $ SHELL $ SHELL是我須要讓代理運行並保持運行的神奇技巧。 我發如今網上的某個地方,它結束了幾個小時的撞擊個人頭撞牆。

如今咱們有了pageant的模擬運行,沒有加載密鑰的代理。

單獨輸入$ ssh-add將添加(默認狀況下)〜/ .ssh中默認標識文件中列出的私鑰。

能夠在此處找到包含更多詳細信息的Web文章


#3樓

或者,若是您想從PuTTY格式化密鑰文件中獲取私鑰和​​公鑰,則能夠在* nix系統上使用puttygen 。 對於大多數基於apt的系統, puttygenputty-tools軟件包的一部分。

從PuTTY格式化密鑰文件輸出私鑰:

$ puttygen keyfile.pem -O private-openssh -o avdev.pvk

對於公鑰:

$ puttygen keyfile.pem -L


#4樓

我最近遇到了這個問題,由於我正在從Putty for Linux遷移到Remmina for Linux。 因此我在.putty目錄中有不少.putty文件,由於我已經使用了8年了。 爲此,我使用一個簡單for命令來執行bash shell來執行全部文件:

cd ~/.putty
for X in *.ppk; do puttygen $X -L > ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pub; puttygen $X -O private-openssh -o ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pvk; done;

很快就到了這一點,爲putty全部的文件完成了工做。 若是找到帶密碼的密鑰,它將中止並首先詢問該密鑰的密碼,而後繼續。


#5樓

在linux下建立密鑰並使用PuTTYgen將密鑰轉換爲PuTTY格式可能更容易。

膩子常見問題:A.2.2

相關文章
相關標籤/搜索