我有一个用密码保护的私钥,可以通过SSH访问服务器。

我有2台linux (ubuntu 10.04)机器,ssh-add命令的行为在它们中都是不同的。

在一台机器上,一旦我使用“ssh-add .ssh/identity”并输入密码,密钥就被永久添加了,即每次我关闭计算机并再次登录时,密钥就已经添加了。

在另一个系统中,我必须在每次登录时添加密钥。

在我的记忆中,我对两个都做了同样的事情。唯一的区别是,密钥是在永久添加的密钥上创建的。

有人知道如何将它永久地添加到另一台机器吗?


当前回答

在Ubuntu 14.04(也许更早,也许仍然如此)你甚至不需要控制台:

start seahorse or launch that thing you find searching for "key" create an SSH key there (or import one) no need to leave the passphrase empty it is offered to you to even push the public key to a server (or more) you will end up with an ssh-agent running and this key loaded, but locked using ssh will pickup the identity (i.e. key) through the agent on first use during the session, the passphrase will be checked and you have the option to automatically unlock the key on login this means the login auth will be used to wrap the passphrase of the key note: if you want to forward your identity (i.e. agent-forwarding) invoke your ssh with -A or make that the default otherwise you can't authenticate with that key on a machine you login to later to a third machine

其他回答

非常简单的^_^两步

1.Yum安装keychain

2.将下面的代码添加到.bash_profile

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

解决方案是通过将密钥文件添加到~/中,强制永久保存密钥文件。ssh /配置文件:

IdentityFile ~/.ssh/gitHubKey
IdentityFile ~/.ssh/id_rsa_buhlServer

如果在~/. conf文件中没有'config'文件。SSH目录,那么您应该创建一个。它不需要根权限,所以很简单:

nano ~/.ssh/config

...并按您的要求输入上面的行。

要做到这一点,文件需要chmod 600。可以使用chmod 600 ~/.ssh/config命令。

如果您希望计算机上的所有用户都使用该密钥,请将这些行放到/etc/ssh/ssh_config中,并将密钥放在所有人都可以访问的文件夹中。

此外,如果您想设置特定于一台主机的键,可以在~/中执行以下操作。ssh / config:

Host github.com
    User git
    IdentityFile ~/.ssh/githubKey

当您有许多身份时,这样做具有优势,服务器不会因为您首先尝试了错误的身份而拒绝您。只会尝试特定的身份。

只需要添加钥匙链,就像Ubuntu快速提示中提到的那样 https://help.ubuntu.com/community/QuickTips

What

不需要经常启动ssh-agent和ssh-add,可以使用keychain来管理ssh密钥。要安装keychain,只需点击这里,或使用Synaptic来完成工作或从命令行apt-get。

命令行

安装文件的另一种方法是打开终端(Application->Accessories-> terminal)并输入:

sudo apt-get install keychain

编辑文件

然后,您应该将以下行添加到${HOME}/。Bashrc或/etc/bash.bashrc:

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

我在Ubuntu 16.04上也遇到了同样的问题:一些密钥是永久添加的,对于其他密钥,我必须在每次会话中执行ssh-add。我发现永久添加的密匙同时具有位于~/中的私钥和公钥。SSH和在每个会话上被遗忘的密钥在~/中只有私钥。ssh dir。因此解决方案很简单:您应该将私钥和公钥复制到~/。执行SSH -add前,请先执行SSH命令。

附注:据我从Gnome wiki了解,我的方法是通过Gnome -keyring工具工作的,这是Gnome桌面环境的一部分。因此,我的方法可能只适用于使用Gnome或基于Gnome的DE。

这对我很管用。

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