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

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

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

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

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

有谁知道如何永久地将它添加到其他机器?


#1楼

在Mac OS X Lion下,我没有回答同样的问题。 我最后补充说:

ssh-add ~/.ssh/id_rsa &>/dev/null

对我的.zshrc(但.profile也没关系),这似乎修复了它。

(如此处所示: http : //geek.michaelgrace.org/2011/09/permanently-add-ssh-key-ssh-add/ )


#2楼

我尝试了@Aaron的解决方案,它对我来说不太有用,因为每次我在终端上打开一个新标签时它都会重新添加我的密钥。 所以我稍微修改了一下(请注意,我的大多数密钥也受密码保护,因此我不能将输出发送到/ dev / null):

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

这样做是为了检查特定键的ssh-add -l (列出已添加的所有键)的输出,如果找不到,则将其添加到ssh-add

现在我第一次打开终端时,我被要求输入私钥的密码,直到我重新启动(或注销 - 我没有检查)我的电脑才会再问。

由于我有一堆密钥,我将ssh-add -l的输出存储在变量中以提高性能(至少我猜它可以提高性能:))

PS:我在linux上,这个代码转到我的~/.bashrc文件 - 如果你在Mac OS X上,那么我认为你应该把它添加到.zshrc.profile

编辑:正如评论所指出的@Aaron的.zshrc文件从使用zsh壳-所以,如果你不使用(如果你不知道,那么最有可能的,你正在使用bash代替) ,此代码应该转到.bashrc文件。


#3楼

在我的情况下,解决方案是:

配置文件的权限应为600. chmod 600 config

正如上面的评论中提到的generalopinion

无需触摸配置文件内容。


#4楼

在Ubuntu 14.04上(可能更早,可能还在)你甚至不需要控制台:

  • 开始seahorse或发现你发现搜索“关键”的东西
  • 在那里创建一个SSH密钥(或导入一个)
    • 无需将密码留空
    • 它甚至可以将公钥推送到服务器(或更多)
  • 你最终会运行一个ssh-agent并加载这个密钥,但是已锁定
  • 使用ssh将通过代理获取身份(即密钥)
  • 在会话期间首次使用时,将检查密码短语
    • 并且您可以选择在登录时自动解锁密钥
    • 这意味着登录身份验证将用于包装密钥的密码
  • 注意:如果您想转发您的身份(即代理转发),请使用-A调用您的ssh或将其设为默认值
    • 否则,您无法在稍后登录到第三台计算机的计算机上使用该密钥进行身份验证

#5楼

我通过在ssh-add中使用-K选项在Mac OSX(10.10)上解决了这个问题:

ssh-add -K ~/.ssh/your_private_key

对于macOS 10.12及更高版本,您需要另外编辑您的ssh配置,如下所述: https : //github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain


#6楼

在“〜/ .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)"

#7楼

非常简单^ _ ^两个步骤

1.yum安装钥匙串

2.添加以下代码到.bash_profile

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

#8楼

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

什么

而不是不断启动ssh-agent和ssh-add,可以使用keychain来管理你的ssh密钥。 要安装钥匙串,您只需单击此处,或使用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

#9楼

我使用两个id_rsa键运行Ubuntu。 (一个人工作)。 ssh-add会记住一个密钥(个人密钥)并且每次忘记公司密钥。

检查两者之间的区别,我看到我的个人密钥有400个权利,而公司有600个权利。 (有你+ w)。 从公司密钥(uw或设置为400)中删除用户写权限解决了我的问题。 ssh-add现在可以记住这两个键。


#10楼

解决方案是通过在~/.ssh/config文件中添加密钥文件来强制永久保存密钥文件:

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

如果〜/ .ssh目录中没有'config'文件,那么你应该创建一个。 它不需要root权限,所以简单地说:

nano ~/.ssh/config

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

为此,文件需要有chmod 600.您可以使用命令chmod 600 ~/.ssh/config

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

此外,如果要设置特定于一个主机的密钥,可以在〜/ .ssh / config中执行以下操作:

Host github.comUser gitIdentityFile ~/.ssh/githubKey

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


#11楼

这对我有用。

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

#12楼

对于使用Fish shell的用户,可以使用以下函数,然后在〜/ .config / fish / config.fish中调用它。 它会将以id_rsa开头的所有键加载到ssh-agent

# Load all ssh keys that start with "id_rsa"
function loadsshkeysset added_keys (ssh-add -l)for key in (find ~/.ssh/ -not -name "*.pub" -a -iname "id_rsa*")if test ! (echo $added_keys | grep -o -e $key)ssh-add "$key"endend
end# Call the function to run it.
loadsshkeys

如果您想在打开终端时自动启动ssh-agent ,可以使用tuvistavie / fish-ssh-agent来执行此操作。


#13楼

我在Ubuntu 16.04上遇到了同样的问题:一些密钥是永久添加的,对于其他人我必须在每个会话上执行ssh-add 。 我发现永久添加的密钥都有私钥和公钥,位于~/.ssh ,每个会话中忘记的密钥只有~/.ssh目录中的~/.ssh 。 因此,解决方法很简单:你应该复制私人和公共密钥~/.ssh执行前ssh-add

如何在Ubuntu上使用ssh-add永久添加私钥? [关闭]相关推荐

  1. gSTM:Ubuntu 上的 SSH Tunneling 图形界面管理工具

    gSTM:Ubuntu 上的 SSH Tunneling 图形界面管理工具 - Wow! Ubuntu gSTM:Ubuntu 上的 SSH Tunneling 图形界面管理工具 介绍 之前我们在 U ...

  2. 如何在Ubuntu上使用MultiSystem创建多启动USB盘

    如何在Ubuntu上使用MultiSystem创建多启动USB盘 介绍 也许还有不少人不知道MultiSystem,它是一个用来在Linux系统中创建多启动usb盘的小型的开源软件.使用这个工具,我们 ...

  3. ubuntu ftp服务器_如何在Ubuntu上安装FTP服务器?

    ubuntu ftp服务器 In this tutorial, let's learn how to install FTP server on Ubuntu. FTP or File Transfe ...

  4. 如何在Ubuntu上安装MariaDB

    We can install MariaDB on Ubuntu from the Ubuntu repositories or the official MariaDB repositories. ...

  5. couchdb 安装_如何在Ubuntu上安装CouchDB –分步指南

    couchdb 安装 In this tutorial, we'll go over how to install CouchDB on Ubuntu. CouchDB is a NoSQL data ...

  6. ubuntu的web服务器_如何在Ubuntu上安装OpenLiteSpeed Web服务器?

    ubuntu的web服务器 Want to install OpenLiteSpeed Webserver on Ubuntu? Today we're going to do just that. ...

  7. ubantu 添加防火墙策略_linux - 如何在Ubuntu上设置简单的防火墙? - Ubuntu问答

    问题描述 有人可以通过配置示例给出一些简单步骤,如何在Ubuntu上设置简单防火墙(仅使用控制台)吗?仅应允许ssh,http和https访问. 最佳方案 sudo ufw默认拒绝 sudo ufw允 ...

  8. 如何在Ubuntu上安装微信(有效)

    在ubuntu上使用windows上的一些软件需要安装wine 先决条件 为了能够在 Ubuntu 系统上安装新软件包,您必须以具有 sudo 权限的用户身份登录.在 Ubuntu 上安装 Wine ...

  9. linux卸载kodi,如何在Ubuntu上安装Kodi 18 Beta

    Kodi的Beta版周期很长.很棒,因为它有助于将错误排除在生产版本之外,而且还可以保留数月的新功能.值得庆幸的是,Kodi开发人员提供了可供测试和使用的"unstable"软件包 ...

  10. pip安装deb_技术|如何在 Ubuntu 上安装 pip

    pip 是一个命令行工具,允许你安装 Python 编写的软件包. 学习如何在 Ubuntu 上安装 pip 以及如何使用它来安装 Python 应用程序. 有许多方法可以在 Ubuntu 上安装软件 ...

最新文章

  1. 小朋友也能看懂的机器学习
  2. Linux服务器与windows本地之间的数据同步
  3. 前端文件表单/ajax上传实例代码
  4. mysql如何给表字段加密_Mysql 字段加密
  5. 高质量灵感图片素材网站分享!
  6. regexp_like 方法
  7. java ascii加密_Java 字符加密
  8. 项目实战-电商(网上书城)
  9. 新浪微博注册页面的用户体验分析报告(转载)
  10. 怎么修改Ubuntu和Windows双系统启动菜单项顺序?
  11. 企业微信获取临时素材,此处接口为语音接口
  12. 弘辽科技:直通车成交率多少正常?如何提高成交率?
  13. 安卓原生系统开发与逆向工程
  14. 手把手教你安装vivado2015.4开发环境
  15. 运输层----ARQ 协议 ---- 连续 ARQ 协议
  16. Java JNI初体验
  17. Apple Pay入门
  18. 关于:-1: error: collect2.exe: error: ld returned 1 exit status和The process was ended forcefully.解决方法
  19. 联想笔记本无法下载 Lenovo Vantage
  20. 618买电视还是投影仪,这款投影仪有4重好礼等着你

热门文章

  1. 追根究底之追本溯源:光标
  2. adb logcat read: unexpected EOF!
  3. jQuery方法大全
  4. 南通大学python期末考试试卷答案_南通大学试卷A(答案及评分标准)
  5. (0068)iOS开发之AutoLayout框架Masonry使用心得
  6. AcWing P164 可达性统计 题解
  7. 7.20套娃(tao)
  8. Python应用——自定义函数:分割PDF文件函数
  9. Tomcat服务器的常用配置
  10. 2016/09/14