pl1*_*1nk 9 ssh unity awesome gnome-classic
我正在使用很棒的窗口管理器
如何使用密码永久添加私钥?
受这里答案的启发,我在 ~/.ssh/config 中添加了私钥
~/.ssh/config 的内容:
IdentityFile 'private key full path'
Run Code Online (Sandbox Code Playgroud)
~/.ssh/config 的权限: 0700
但这对我不起作用。
如果我在每个会话中手动添加密钥,它会起作用,但我正在寻找一种更优雅的方式(不在 .bashrc 中)
编辑:
将 SSH 密钥添加ssh-copy-if
到远程主机后,我在登录时在终端(GNOME 终端 3.0.1)中收到以下提示:
ssh -i .ssh/Password-Protected-Key user@host
Enter passphrase for key '.ssh/Password-Protected-Key':
Run Code Online (Sandbox Code Playgroud)
gnome-keyring-dameon
杀死了另一个 pid 并运行gnome-keyring-daemon --start | grep SOCK
(我还在 .profile 中添加了它)(grep)输出:SSH_AUTH_SOCK=/tmp/keyring-2LXXXX/ssh
我遵循了完全相同的步骤,同样我没有任何 GUI ssh-add 对话框。
编辑 2:
我在 Ubuntu 11.10 虚拟机上创建了一个新的受密码保护的密钥,但仍然无法获得任何密码提示。
编辑 3:这似乎不能在 Awesome 窗口管理器中工作 :( 可能还有其他..
ish*_*ish 19
这可能就是您想要的:输入密钥密码短语后,只要您登录就可以使用它。它适用于大多数使用 Unity 或 Gnome 桌面的用户。
在将公钥添加到远程服务器后连接时,您将获得 GUI ssh-add 对话框:
单击三角形展开“详细信息”,您将获得以下内容。默认为“登出时锁定钥匙圈”,这要求您在每个会话中输入一次密码:
将其更改为自动解锁...每当我登录时,这意味着只要您登录到会话,它就会工作——它由您的用户密码“控制”。它将在重新启动后持续存在。
输入一次密钥密码,就是这样 - 密钥通过初始成功登录到您的桌面环境进行身份验证。
在新的用户 ID 中使用全新安装的 AwesomeWM 进行测试
默认情况下,AwesomeWM使用ssh-agent
:
$ 出口 | SSH 连接 声明 -x SSH_AGENT_PID="5479" 声明 -x SSH_AUTH_SOCK="/tmp/ssh-fWCKNnPq5440/agent.5440"
要使上述步骤生效,您必须使用gnome-keyring-daemon
SSH 身份验证守护进程,而不是 ssh-agent。当您使用 lightdm 登录时,PAMgnome-keyring-daemon
将启动,它将尝试使用您的解锁密码解锁登录密钥,但您必须将其添加到您的配置中以使其保持运行并使用它。
将以下内容添加到您的末尾~/.xprofile
:
#!/bin/bash eval $(gnome-keyring-daemon --start) 导出 SSH_AUTH_SOCK 导出 GNOME_KEYRING_PID 导出 GNOME_KEYRING_CONTROL
~/.xprofile
文件中的命令将在启动awesome窗口管理器之前由 xsession 执行,并gnome-keyring-daemon --login
通过上述环境变量将其绑定到PAM 启动的进程。
ssh user@host
,你应该得到上面的弹出窗口——使用它们来解码 ~/.ssh/ 中的私钥并将你的私钥保存到 gnome-keyring 登录密钥环。是使用gnome-keyring-daemon
而不是ssh-agent
. 为此,您需要运行gnome-keyring-daemon
并初始化它,然后在ssh-agent
启动后执行此操作或根本不启动ssh-agent
。
ssh
(实际上是ssh-add)根据SSH_AUTH_SOCK
环境变量的值决定调用哪个认证代理,可以通过键入来检查export | grep SOCK
这是形式SSH_AUTH_SOCK=/tmp/ssh-MMFyVlI22130/agent.22130
的SSH代理 (你希望能够保存你的关键不是)
但形式SSH_AUTH_SOCK="/tmp/keyring-mEQB5g/ssh"
为GNOME的钥匙圈守护进程 (要)
所以检查的价值,并与检查ps aux | grep keyring
是GNOME的钥匙圈守护程序正在运行,如果是这样,用的结果初始化gnome-keyring-daemon --start
然后,您可以通过键入在控制台中检查关联的已保存身份ssh-add -l
——如果它显示“无代理”,那么您在配置 gnome-keyring-daemon 时犯了一个错误。
如果您使用 Unity 或启动 gnome-keyring-daemon 的会话管理器,您可以简单地使用 Seahorse(密码和密钥)来建立密钥、定义其用途、设置密码并将其公钥分发给您将要使用 ssh 的计算机。不需要终端命令。
您可以通过以下方式创建密码:
选择“文件”->“新建”并选择“安全 Shell 密钥”。按继续。
输入描述性名称,然后选择Create and set up
。
系统将提示您输入关键字两次(第二次是为了检查您第一次是否输入错误。
输入应使用公钥的计算机以及您将使用该密钥的计算机上的用户名。公钥将被复制到另一台计算机,如有必要,将提示您在该计算机上输入密码。
现在My Personal Keys
选项卡将显示密钥。
假设当您登录 Lightdm 时 gnome-keyring-daemon 已正确启动,并且由会话管理器再次正确启动,当您首次使用 ssh 密钥时,系统将提示您输入密钥短语。在此对话框中,您可以提供密钥短语,选择Details
控件并要求在您登录时解锁密钥环 - 自动提供此密钥。按OK
如果有另一个密钥可用于登录远程计算机,则可能不会以这种方式提示您。
完成此操作后,第一个 Seahorse 选项卡Passwords
将列出密钥名称的“解锁密码条目”。单击“密码:登录”之前的三角形即可查看。