标签: key-authentication

如何使用密码从远程 ssh 登录中锁定我自己的帐户?

我不想完全禁用密码远程登录,但我想让我的帐户只能通过密钥对身份验证访问(还有其他用户想要使用密码登录)。是否可以在每个用户的基础上更改此设置,理想情况下不更改系统设置?

并且明确地说,我的帐户具有 sudo 访问权限,因此我不想锁定密码。

ssh authentication key-authentication

10
推荐指数
1
解决办法
1534
查看次数

ssh 进入没有主目录的帐户

作为对我上一个问题的跟进,我决定创建如下本地用户帐户。

adduser --system --no-create-home USERNAME
Run Code Online (Sandbox Code Playgroud)

现在,我希望本地用户能够使用ssh. 根据我的理解,ssh工作如下。

假设我有 2 台机器(比如alphabeta)。

  • 阿尔法机器:ssh user@beta
  • alpha 的公钥将出现~/.ssh/authorized_keysbeta机器下。
  • alpha 的私钥将出现/~/.sshalpha机器下。

现在我计划为用户实现无家。因此,假设我adduser在没有任何用户家的情况下进入beta机器,我是否仍然能够从alpha ssh 进入beta 版

ssh key-authentication

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

/etc/ssh/ 和 ~/.ssh 有什么区别?

我对 OpenSSH 很感兴趣,我知道该/etc/ssh目录是用于 ssh 守护进程的,而该~/.ssh目录是用于特定用户的。

两个目录都包含私钥和公钥:

目录目录

但是这些键之间有什么区别呢?我很困惑,因为我作为用户使用的那些在我的主目录中,在/etc/ssh?

security ssh openssh cryptography key-authentication

10
推荐指数
2
解决办法
9926
查看次数

如何验证 SSH 公钥?

我在将公钥复制到authorized_keys并用额外的换行符或空格或其他东西结束时遇到了问题。

有没有办法简单地验证密钥看起来像有效密钥?我没有私钥。

ssh key-authentication

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

ssh-agent 缺少类似 sudo 的不活动/空闲超时功能是否存在技术原因?

ssh-agent -t在 [1] 中有一些关于现有功能的简短讨论,早在 2001 年 debian-devel [2] 上就有一个帖子希望有一个不活动超时功能。在 SE [3] 上有一个类似的讨论,用于选美。

我不得不想知道地球上的其他地方是如何保护 ssh 密钥的——我是否遗漏了一些明显的东西,这对我来说是一个痛点,而且显然没有其他人?具体来说,我正在考虑脚本化的 ssh 交互,例如使用 ansible。看来今天,你的选择是:

  • 将您的密钥在代理中的生命周期设置为令人担忧的长时间,例如。1 小时或任何脚本的最大运行时间(我怀疑很多人允许他们的 sudo 重新验证超时延长那么长时间!)-但是seahorse/gnome-keyring-daemon几乎不支持这么多 [4]
  • 照看您长时间运行的脚本,并每隔 5/10/15 分钟不断重新输入密码:现在您可以轻松地看到每天输入密码 20 次
  • 破解你自己的自制解决方案来模仿这个缺失的功能,也许结合你的 shell 的TMOUTshell var(感谢 freenode #openssh IRC 上的人的建议)
  • 根本没有设置密钥生命周期,即您的代理会永远加载您的密钥或直到您杀死/重新启动

如果您使用简短的 ssh 代理超时、强密码短语和不同的密钥文件来为您进行身份验证的每种角色类型:这将导致非常令人沮丧的一天!

我已经尝试过 gpgkey2ssh 和智能卡,但这并不能真正解决这个特定问题:我仍然需要 ssh-agent 功能,而且我不想每 5 分钟重新验证一次以防止我的私钥被暴露在我的电脑空闲时在内存中。

我做错了吗?

[1]配置SSH代理的默认超时时间

[2] https://lists.debian.org/debian-devel/2001/09/msg00851.html

[3] https://serverfault.com/questions/518312/putty-pageant-forget-keys-after-period-of-inactivity

[4] https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/129231

security ssh key-authentication ssh-agent

9
推荐指数
1
解决办法
666
查看次数

如何将 SSH 公钥从 PEM 转换为 DER 格式?

我想将现有的公钥(使用 生成ssh-keygen)从PEM-format 转换为DER-format

我试过:

openssl rsa -in ~/.ssh/id_rsa.pub -inform PEM -pubin -outform DER -out ~/.ssh/id_rsa.pub.der
Run Code Online (Sandbox Code Playgroud)

不幸的是,这给出了以下错误:

unable to load Public Key
139946985690784:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: PUBLIC KEY
Run Code Online (Sandbox Code Playgroud)

该文件~/.ssh/id_rsa.pub包含一个公钥;cat ~/.ssh/id_rsa.pub给出:

ssh-rsa ...... user@machine
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

key-authentication openssl conversion

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

如何使用私钥指向ssh文件夹以自动选择一个?

我希望能够使用

ssh user@host

没有-i identity_rsa_or_else_private_key_file. 配置中是否有某个地方ssh可以指出私钥所在的位置,以便ssh自动选择一个进行连接(这样我就不必键入了-i key_file)?

ssh key-authentication

8
推荐指数
1
解决办法
8228
查看次数

具有密码保护的 SSH 密钥的并行 ssh

在使用parallel-ssh(和相关工具)执行任务时,我想使用受密码保护的 SSH 密钥。但是,我无法让它发挥作用。

所有关于 的文档都parallel-ssh表明我应该能够使用--askpass-A做到这一点:

-A
--askpass
      Prompt  for  a  password  and pass it to ssh.  The password may be 
      used for either to unlock a key or for password authentication.  The 
      password is transferred in a fairly secure manner (e.g., it will not 
      show up in argument lists).  However, be aware that a root user on 
      your system could potentially intercept the password.
Run Code Online (Sandbox Code Playgroud)

但是,当我输入密钥的密码时,它不起作用:

$ parallel-ssh --hosts=machines --user=my_user --askpass \
    --timeout=0 …
Run Code Online (Sandbox Code Playgroud)

ssh key-authentication parallel-ssh

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

允许普通用户使用他们无法读取的私钥进行 SSH

假设我有一组机器(这里称为客户的机器),只允许一小部分人(称为支持人员)通过 SSH 进入,每台机器只使用一个帐户(支持访问帐户)。

支持人员只能使用密钥登录客户的机器。此外,支持人员可以发展,因此离开支持人员的人不得登录任何客户机器。因此,员工被禁止读取用于登录客户机器的私钥。此外,禁止修改authorized_keys客户机器上的文件。

为了实现该配置,我想到了使用支持人员将登录的 SSH 代理(使用 LDAP 身份验证,但这是另一个问题)并且包含私钥。

问题是:如何让支持人员在无法读取的情况下使用 SSH 私钥?

我相信我必须在代理机器上创建一个以 root 身份运行的守护进程,它将接受用户的请求并为他们打开一个 SSH 会话,但我不知道该怎么做。有任何想法吗?

security ssh key-authentication privileges

8
推荐指数
2
解决办法
2205
查看次数

如何以特定用户身份使用 ssh 登录?

在 Ubuntu AWS实例上,我想以ssh具有 sudo 权限的“thufir”身份加入。使用sudo adduser thufir然后adduser thufir sudo从“ubuntu”用户创建用户 thufir ?只需我的公钥添加~/.ssh/authorized_keys,然后我就可以 ssh 作为“thufir”到远程实例?

我可以使用我的常规公钥在 AWS 上以“ubuntu”身份登录,还是需要 AWS 生成的密钥?

我希望能够ssh使用我自己的密钥作为“ubuntu”——这可能吗?“ubuntu”用户没有密码,严格按密钥登录。

ssh key-authentication

8
推荐指数
2
解决办法
4万
查看次数