dam*_*reg 588
解决方案是通过在您的~/.ssh/config
文件中添加密钥文件来强制永久保存密钥文件:
IdentityFile ~/.ssh/gitHubKey
IdentityFile ~/.ssh/id_rsa_buhlServer
Run Code Online (Sandbox Code Playgroud)
如果〜/ .ssh目录中没有'config'文件,那么你应该创建一个.它不需要root权限,所以简单地说:
nano ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)
...并根据您的要求输入上面的行.
为此,文件需要有chmod 600.您可以使用该命令chmod 600 ~/.ssh/config
.
如果您希望计算机上的所有用户都使用密钥将这些行放入/etc/ssh/ssh_config
,并将密钥放在所有人都可以访问的文件夹中.
此外,如果要设置特定于一个主机的密钥,可以在〜/ .ssh/config中执行以下操作:
Host github.com
User git
IdentityFile ~/.ssh/githubKey
Run Code Online (Sandbox Code Playgroud)
您需要使用@github而不是@ github.com进行克隆,但这样做的好处是只会尝试使用此密钥.
Aar*_*ron 111
在Mac OS X Lion下,我没有回答同样的问题.我最后补充说:
ssh-add ~/.ssh/id_rsa &>/dev/null
Run Code Online (Sandbox Code Playgroud)
对我的.zshrc(但.profile也没关系),这似乎修复了它.
(如此处所示:http://geek.michaelgrace.org/2011/09/permanently-add-ssh-key-ssh-add/)
tot*_*tas 107
我通过在ssh-add中使用-K选项在Mac OSX(10.10)上解决了这个问题:
ssh-add -K ~/.ssh/your_private_key
Run Code Online (Sandbox Code Playgroud)
对于macOS 10.12及更高版本,您需要另外编辑您的ssh配置,如下所述:https://github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain
Chr*_*iki 33
只需添加钥匙串,如Ubuntu快速提示中所述, https://help.ubuntu.com/community/QuickTips
什么
而不是不断启动ssh-agent和ssh-add,可以使用keychain来管理你的ssh密钥.要安装钥匙串,您只需单击此处,或使用Synaptic从命令行执行作业或apt-get.
命令行
安装文件的另一种方法是打开终端(Application-> Accessories-> Terminal)并输入:
sudo apt-get install keychain
Run Code Online (Sandbox Code Playgroud)
编辑文件
然后,您应该将以下行添加到$ {HOME} /.bashrc或/etc/bash.bashrc:
keychain id_rsa id_dsa
. ~/.keychain/`uname -n`-sh
Run Code Online (Sandbox Code Playgroud)
Nik*_*lov 18
我尝试了@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
Run Code Online (Sandbox Code Playgroud)
它的作用是检查ssh-add -l
特定键的输出(列出已添加的所有键),如果找不到,则将其添加ssh-add
.
现在我第一次打开终端时,我被要求输入私钥的密码,直到我重新启动(或注销 - 我没有检查)我的电脑才会再问.
由于我有一堆密钥,我将输出存储ssh-add -l
在变量中以提高性能(至少我猜它会提高性能:))
PS:我在linux上,这段代码转到我的~/.bashrc
文件 - 如果你在Mac OS X上,那么我认为你应该把它添加到.zshrc
或.profile
编辑:正如@Aaron在评论中指出的那样,.zshrc
文件是从zsh
shell中使用的- 所以如果你不使用它(如果你不确定,那么很可能,你正在使用bash
),这段代码应该转到您的.bashrc
文件.
我使用两个 id_rsa 密钥运行 Ubuntu。(一个个人的工作)。ssh-add 每次都会记住一把钥匙(个人的)而忘记公司的一把。
检查两者之间的区别,我看到我的个人密钥有 400 个权限,而公司一个有 600 个权限。(有 u+w)。从公司密钥(uw 或设置为 400)中删除用户写入权限解决了我的问题。ssh-add 现在记住两个键。
在Ubuntu 16.04上,我遇到了同样的问题:某些键是永久添加的,其他键则必须ssh-add
在每个会话中执行。我发现,永久添加的密钥位于私钥和公钥中~/.ssh
,而每次会话中忘记的密钥在~/.ssh
dir中只有私钥。因此,解决方法很简单:你应该复制这两个私钥和公钥来~/.ssh
执行前ssh-add
。
PS:据我从Gnome Wiki所了解,我的方法可以使用Gnoome桌面环境中的gnome-keyring工具。因此,仅当您使用Gnome或基于Gnome的DE时,我的方法才可能起作用。
归档时间: |
|
查看次数: |
364190 次 |
最近记录: |