我有一个用密码保护的私钥,可以通过SSH访问服务器。
我有2台linux (ubuntu 10.04)机器,ssh-add命令的行为在它们中都是不同的。
在一台机器上,一旦我使用“ssh-add .ssh/identity”并输入密码,密钥就被永久添加了,即每次我关闭计算机并再次登录时,密钥就已经添加了。
在另一个系统中,我必须在每次登录时添加密钥。
在我的记忆中,我对两个都做了同样的事情。唯一的区别是,密钥是在永久添加的密钥上创建的。
有人知道如何将它永久地添加到另一台机器吗?
我有一个用密码保护的私钥,可以通过SSH访问服务器。
我有2台linux (ubuntu 10.04)机器,ssh-add命令的行为在它们中都是不同的。
在一台机器上,一旦我使用“ssh-add .ssh/identity”并输入密码,密钥就被永久添加了,即每次我关闭计算机并再次登录时,密钥就已经添加了。
在另一个系统中,我必须在每次登录时添加密钥。
在我的记忆中,我对两个都做了同样的事情。唯一的区别是,密钥是在永久添加的密钥上创建的。
有人知道如何将它永久地添加到另一台机器吗?
当前回答
我使用两个id_rsa密钥运行Ubuntu。(工作用一个)。 Ssh-add每次都会记住一个密钥(个人密钥),而忘记公司密钥。
查看两者之间的差异,我发现我的个人密钥有400个权限,而公司密钥有600个权限。(u + w)。 从公司密钥中删除用户写入权限(u-w或设置为400)解决了我的问题。Ssh-add现在记住两个键。
其他回答
非常简单的^_^两步
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
当您有许多身份时,这样做具有优势,服务器不会因为您首先尝试了错误的身份而拒绝您。只会尝试特定的身份。
在“~/.”中添加以下行。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快速提示中提到的那样 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
我在Mac OSX(10.10)上通过使用-K选项ssh-add解决了这个问题:
ssh-add -K ~/.ssh/your_private_key
对于macOS 10.12及以上版本,您需要额外编辑您的ssh配置,如下所示:https://github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain