2015-08-15 22 views
1

我需要從SSL私鑰文件中刪除密碼。我正在使用密碼中的SSH轉義序列

openssl rsa -in in.key.pem -out out.key.pem 

要做到這一點。我現在面臨的問題是,對於密鑰文件(被在不同的機器上的某個地方產生的密碼)密碼短語看起來是這樣的:

~Casdfghetc 

正如你可能已經想通了,在「〜C」該密碼的一部分會產生新的命令行,並使我無法正確輸入密碼。引用,雙引號等不起作用。 我使用膩子連接到這個shell,跳過一個金主機(powerbroker)。這是一個高效,安全的環境,所以我無法以其他方式登錄本機。關於如何讓這個工作的任何提示?

+0

什麼?膩子特別處理波浪形(〜)?這很奇怪。我不明白爲什麼「〜C」可以用作Ctrl + C。 1.你確定你實際上是按下Shift + C(對於「C」),而不是Ctrl + C(並且你實際按下Shift +〜(對於「〜」)而不是Shift + Escape)? 2.如果您嘗試在「〜」和「C」之間鍵入一些字符(並使用Backspace刪除它們),會發生什麼情況? 3.當您在原始語言中輸入「〜Casdfghetc」時會發生什麼(例如'echo「〜Casdfghetc」')? – Sasha

+0

在bash中輸入〜C即刻產生一個新的命令行。 [這是發生了什麼事情](http://www.jedi.be/blog/2010/08/27/ssh-tricks-the-usual-and-beyond/)(在該頁面上搜索「SSH轉義序列」) 。要輸入密碼,我實際上只是嘗試複製粘貼,手動輸入,在〜後鍵入除「C」之外的其他字符,等等......如果我沒有得到新的命令行,密碼輸入不正確。 編輯:我應該提到,這是一箇舊的solaris系統,我無法控制其配置。正如我所說的,安全的生產環境。 – peph

+0

@peph要明確一點,〜C和其他代字符序列的特殊處理不是SSH協議的固有部分,它沒有記錄爲膩子特徵。它是unix系統中廣泛使用的'ssh'命令行實用程序的一個特性。在你的問題中,你說你使用的是膩子,但是你不會說使用'ssh'工具。我的猜測是,無論您是否意識到這個問題,都會涉及帶有代字符序列的ssh實用程序。或者,也許這是我錯過的一種膩子功能。 – Kenster

回答

2

方式1. http://www.jedi.be/blog/2010/08/27/ssh-tricks-the-usual-and-beyond/指出:

轉義序列換行符之後,才能識別

所以,當問一個密碼,你可以做到以下幾點:

  1. 在輸入密碼之前鍵入一些字母,例如a
  2. 按Backspace鍵撤銷/刪除它。
  3. 照常輸入您的密碼。

方式2.在我的系統上,按「〜?」顯示以下幫助:

Supported escape sequences: 
~. - terminate connection (and any multiplexed sessions) 
~B - send a BREAK to the remote system 
~C - open a command line 
~R - request rekey 
~V/v - decrease/increase verbosity (LogLevel) 
~^Z - suspend ssh 
~# - list forwarded connections 
~& - background ssh (when waiting for connections to terminate) 
~? - this message 
~~ - send the escape character by typing it twice 
(Note that escapes are only recognized immediately after newline.) 

所以,換行後立即插入波浪(~),我只需要按兩次它(~~)。也許,對於您的系統也是如此:只需鍵入~~Casdfghetc而不是~Casdfghetc