your - 在Ubuntu上使用ssh-add永久添加私鑰




ssh-keygen用法 (8)

只需添加鑰匙串,如Ubuntu快速提示中所引用https://help.ubuntu.com/community/QuickTips

什麼

而不是經常啟動ssh-agent和ssh-add,可以使用鑰匙串來管理你的ssh密鑰。 要安裝鑰匙串,只需單擊此處,或使用Synaptic從命令行執行作業或apt-get。

命令行

另一種安裝文件的方法是打開終端(應用程序 - >附件 - >終端)並輸入:

sudo apt-get install keychain

編輯文件

然後,您應該將以下行添加到$ {HOME} /。bashrc或/etc/bash.bashrc中:

keychain id_rsa id_dsa
. ~/.keychain/`uname -n`-sh

我有一個使用密碼保護的私鑰,可以通過SSH訪問服務器。

我有2個Linux(Ubuntu 10.04)機器,並且ssh-add命令的行為在它們兩者中都不相同。

在一台機器上,一旦我使用“ssh-add .ssh / identity”並輸入密碼,密鑰就會永久添加,即每次關機並重新登錄時,密鑰都已添加。

另一方面,我每次登錄時都要添加密鑰。

據我所知,我對兩者都做了同樣的事情。 唯一的區別是密鑰是在永久添加的密鑰上創建的。

有誰知道如何將其永久添加到其他機器?


在“〜/ .bashrc”中添加以下幾行解決了我的問題。 我使用Ubuntu 14.04桌面。

eval `gnome-keyring-daemon --start`
USERNAME="reynold"
export SSH_AUTH_SOCK="$(ls /run/user/$(id -u $USERNAME)/keyring*/ssh|head -1)"
export SSH_AGENT_PID="$(pgrep gnome-keyring)"

在Ubuntu 14.04上(也許更早,也許還是),你甚至不需要控制台:

  • 開始seahorse或發射你發現尋找“鑰匙”的東西
  • 在那裡創建一個SSH密鑰(或導入一個)
    • 不需要將密碼留空
    • 它甚至可以將公鑰推送到服務器(或更多)
  • 你最終將會運行一個ssh-agent並加載這個密鑰,但是會被鎖定
  • 使用ssh將通過代理獲取身份(即密鑰)
  • 在會話期間首次使用時,密碼將被檢查
    • 並且您可以選擇在登錄時自動解鎖密鑰
    • 這意味著登錄驗證將用於包裝密鑰的密碼
  • 注意:如果您想轉發您的身份(即代理轉發),請使用-A調用您的ssh或將其設為默認值
    • 否則,您不能在您稍後登錄到第三台機器的計算機上使用該密鑰進行身份驗證

在我的情況下,解決方案是:

配置文件的權限應該是600. chmod 600 config

正如上述通用觀點的評論所述

無需觸摸配置文件的內容。


很簡單^ _ ^兩個步驟

1.yum安裝鑰匙串

2.將以下代碼添加到.bash_profile

/usr/bin/keychain $HOME/.ssh/id_dsa
source $HOME/.keychain/$HOSTNAME-sh

我使用-k選項為ssh-add解決了Mac OSX(10.10)上的問題:

ssh-add -K ~/.ssh/your_private_key

我試過@Aaron的解決方案,它對我來說並不適合,因為每次我在終端中打開一個新標籤時,它都會重新添加我的密鑰。 所以我修改了一下(注意,我的大多數密鑰也是受密碼保護的,所以我不能只將輸出發送到/ dev / null):

added_keys=`ssh-add -l`

if [ ! $(echo $added_keys | grep -o -e my_key) ]; then
    ssh-add "$HOME/.ssh/my_key"
fi

這樣做的目的是檢查ssh-add -l (列出所有已添加的鍵)的輸出,如果沒有找到它,則將其添加到ssh-add

現在我第一次打開我的終端時,我被要求輸入私鑰的密碼,直到重新啟動(或註銷 - 我沒有檢查過)我的電腦後才再次詢問。

由於我有一堆密鑰,我將ssh-add -l的輸出存儲在一個變量中以提高性能(至少我認為它提高了性能:))

PS:我在Linux上,這段代碼到我的~/.bashrc文件 - 如果你在Mac OS X上,那麼我假設你應該將它添加到.zshrc.profile

編輯:正如@Aaron在評論中指出的那樣, zsh shell使用了.zshrc文件 - 所以如果你不使用它(如果你不確定,那麼很可能你使用的是bash ) ,這段代碼應該去你的.bashrc文件。


這對我有效。

ssh-agent /bin/sh
ssh-add /path/to/your/key




ssh-agent