相关疑难解决方法(0)

如何启动和使用 ssh-agent 作为 systemd 服务?

  1. 如何将ssh-agent作为systemd服务启动?网上有一些建议,但都不完整。

  2. 如果ssh-agent服务启动成功,如何自动添加未加密的密钥?可能,从列表中添加键~/.ssh/.session-keys会很好。

  3. 之后如何SSH_AUTH_SOCK在任何登录会话中进行设置?最正确的方法是将它从ssh-agent服务推送到systemd-logind服务(不知道是否有可能)。简单天真的方法就是将它添加到/etc/profile.

systemd ssh-agent

22
推荐指数
1
解决办法
2万
查看次数

如何仅在需要时才要求提供 SSH 密钥密码?

(我已经阅读了本网站上许多看起来相关的问题,我相信这是一个真正的新问题。)

我在很多服务器上都有很多密钥,它们都受到密码保护。

我喜欢输入密码,就像我喜欢输入密码一样 - 这是一个真正的生产力消耗。

  • ssh-agent + ssh-add命令可用于登录 shell,这意味着您只需在登录时输入一次密码

  • 钥匙串可用于在注销后保持 ssh 代理处于活动状态,例如,您可以拥有它,因此您只需在启动时输入一次密码,或者您可以让它保持活动状态一小时左右。

我遇到的问题是,这两种解决方案通常都是在 shell 登录(例如.zshrc)中启动的,依赖于我在登录时输入我的密码,即使我不需要解锁它。(我对钥匙串让代理无限期地活着不满意。)

我想要的是仅在需要时提示输入密码(对于代理)。

这样我就可以登录到服务器A,做一些东西,然后ssh到服务器B,并在该点被要求提供密码。在服务器 B 上做一些事情,注销。回到 A,做一些更多的事情,再次 ssh 到 B 并且不需要我的密码(它由代理持有)。

我注意到这在像 Gnome 这样的图形桌面上是可能的——当你尝试 ssh 时,你会得到一个弹出窗口,要求输入密码来解锁你的私钥。所以这就是我所追求的,但来自控制台。

ssh ssh-agent

18
推荐指数
2
解决办法
6910
查看次数

如何在不触发提示的情况下将密码传递给 ssh-add?

我读过man ssh-add,但没有看到像我们那样ssh-p传递密码的标志其中 is

我试过

# the -K is for macOS's ssh-add but it's not relevant
ssh-add -q -K ~/.ssh/id_rsa <<< $passphrase
Run Code Online (Sandbox Code Playgroud)

但我得到以下输出:

ssh_askpass: exec(/usr/X11R6/bin/ssh-askpass): No such file or directory
Run Code Online (Sandbox Code Playgroud)

如何在不触发提示的情况下传递密码

更新

为我正在做的事情添加更多上下文,我正在创建一个脚本来为我创建 SSH 密钥。它将生成密码,使用该密码的 SSH 密钥,并将其添加到代理中。

# the -K is for macOS's ssh-add but it's not relevant
ssh-add -q -K ~/.ssh/id_rsa <<< $passphrase
Run Code Online (Sandbox Code Playgroud)

按照斯蒂芬的回答,我不确定这将如何运作。似乎我不得不创建一个临时脚本并将其保存到磁盘,以便 SSH_ASKPASS 工作。有任何想法吗?

command-line bash

7
推荐指数
2
解决办法
6190
查看次数

如何更改匿名管道的权限?

我有从变量加载 SSH 密钥的脚本(作为 CI 环境中脚本的一部分),以便不将私有文件保存在公共存储库中,但是ssh-add抱怨权限错误(似乎无法绕过它)。所以我的方法是找到更改动态创建的匿名管道权限的方法。

例如:

$ stat <(:)
  File: ‘/dev/fd/63’
  Size: 0           Blocks: 0          IO Block: 512    fifo
Device: 397f3928h/964639016d    Inode: 818277067   Links: 0
Access: (0660/prw-rw----)  Uid: (  501/  kenorb)   Gid: (   20/   staff)
Access: 2015-10-10 22:33:30.498640000 +0100
Modify: 2015-10-10 22:33:30.498640000 +0100
Change: 2015-10-10 22:33:30.498640000 +0100
 Birth: 2015-10-10 22:33:30.498640000 +0100
Run Code Online (Sandbox Code Playgroud)

显示0660许可。我检查了我的umask,似乎与此无关。

这是一个简单的测试(在 OS X 上,默认为 0660):

$ ssh-add <(cat ~/.ssh/id_rsa)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0660 …
Run Code Online (Sandbox Code Playgroud)

bash permissions umask pipe

5
推荐指数
1
解决办法
3208
查看次数

标签 统计

bash ×2

ssh-agent ×2

command-line ×1

permissions ×1

pipe ×1

ssh ×1

systemd ×1

umask ×1