标签: ssh-keys

使用 puppet 管理 ssh_known_hosts

我是Puppet(开源版本)的新手,有一个相对简单的问题。

当我启动一个新主机时,我希望 puppetmaster 将新主机的公共 rsa 密钥添加到 /etc/ssh/ssh_known_hosts,这样更新后的 ssh_known_hosts 文件就可以被 puppet 代理拉下来了。

我试过sshkey资源:

# /etc/puppet/modules/ssh/manifests/client.pp

sshkey { $hostname:
    ensure => present,
    type => "rsa",
    key  => $sshrsakey,
}
Run Code Online (Sandbox Code Playgroud)

但是,ssh_known_hosts 似乎并未在 puppetmaster 或代理上进行修改。我的清单在运行时通过了语法验证,puppet parser validate client.pp并且puppet agent --test在代理上运行未报告任何问题。

我是否必须设置存储配置才能使用 sshkey 资源?我喜欢存储配置的功能,但它似乎对我需要的东西来说有点过分,而且似乎增加了很多开销。我的另一个选择是将$sshrsakey事实吐到 a file,但它需要检查公钥是否存在,因此它不会被多次添加。

linux puppet ssh-keys puppetdb

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

ssh 密钥丢失的理论情况

这还没有发生在我身上。

但让我们假设以下场景:

我将我的公钥复制到服务器,然后禁用 ssh 的密码验证。然后,不知什么原因,服务器上的公钥被破坏,我无法再登录,因为我关闭了密码验证。

我有哪些选项可以重新获得对该服务器的访问权限?

ssh ssh-keys

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

PuTTY keyphrase 需要多长时间(即 PuTTY 如何加密私钥)

我想知道 PuTTY 密码短语的最短密码长度是多少。这取决于密码短语需要具有的熵量,而这又取决于一次尝试所需的长度,而这又取决于用于加密私钥的算法。

假设 PBKDF2 的设置足够慢,只有 6 个随机字母数字字符在熵上几乎是 36 位,并且需要很长时间才能进行暴力破解。但是,如果加密是微不足道的,那么每秒可能会尝试数十亿次(或并行数万亿次)尝试,我希望至少有 64 位的熵 - 至少 11 个字符。

那么它是什么 - PuTTY 是否使用了像 PBKDF2/bcrypt/scrypt/whatever 这样又好又慢的东西,还是我需要担心确保 passphases 很长?

putty ssh-keys password-policy

5
推荐指数
2
解决办法
623
查看次数

有没有更简单的方法为新用户添加公钥认证?

我正在使用 Ubuntu 12.04 在新的 Web LEMP 服务器上设置安全用户,这是一项艰巨而痛苦的过程。我最初打算设置诸如 vsftpd 或 proftpd 之类的东西,但许多人建议直接使用 SFTP,所以我会这样做。最终,我有一个主要用户(我使用它只是为了防止 root 登录)。我创建了这个新用户,生成了一个公钥对,将公钥上传到用户~/.ssh目录中authorized_key,更改了 SSH 端口号,删除了 root 登录并设置passwordauthentication为 NO,因此用户被迫使用他/她的密钥登录in. 足够简单(尽管在 PC 上工作似乎比我的 OSX/NIX 同行更令人头疼)。

我现在正在尝试创建新用户(为我的 Web 开发人员),这些用户将只拥有 SFTP 访问权限,并将他们的暴露限制在他们负责的 Web 目录中。每个目录具有以下格式:

/var/www/sitename.com/public/
Run Code Online (Sandbox Code Playgroud)

我的头痛现在开始了。创建新用户?简单。添加密码?真的不需要考虑我需要公钥/私钥(而且他们永远不会有 sudo 访问权限)但是可以。然而,我正在努力解决以下问题:

  • 我如何在服务器上实际存储这个新用户的公钥?如果我以 root 用户身份登录并简单地authorized_keys在他们的主目录中创建文件,它将拥有 root 所有者和组权限,并且他们无法登录到服务器。类似地,这些新用户不能自己登录和创建它,嗯,呃,因为他们不允许通过密码登录。

(注意:我也在努力设置 sftp 并将它们限制在各自的 Web 目录中,但我想我以后可以自己解决这个问题)。

有什么建议吗?

编辑

目前流程是这样的:

  • 从个人获取公钥
  • 执行以下命令:
#sudo mkdir -p /home/newuser/.ssh
#sudo nano /home/newuser/.ssh/authorized_key
#(将key复制到一行并保存)
#chown -R newuser:newuser /home/newuser
#chmod 700 /home/newuser/.ssh
#chmod 600 /home/newuser/.ssh/authorized_key

我想这并不是绝对可怕,但是如果我们有大量的开发人员(加上我将要花费我用 SFTP 部分和目录限制来设置他们的时间),这似乎是一个巨大的痛苦。

linux ubuntu authentication ssh-keys ubuntu-12.04

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

从 cron 运行时,来自 Bitbucket 的 hg pull 失败

我在我的一台服务器上(在用户 rob 下)有一个 Bitbucket 存储库的本地副本,我创建了一个脚本,该脚本在 cron 中每小时运行一次,并尝试拉取和更新本地副本。我遇到的问题是hg pull失败,即使当我在 cron 之外遵循相同的程序时它也能正常工作。

我设置了一个以正常方式访问 Bitbucket 的 ssh 密钥(即遵循 Bitbucket 文档中的指南),然后 repo 最初被克隆

cd /home/rob
hg clone ssh://hg@bitbucket.org/robjohncox/tools
Run Code Online (Sandbox Code Playgroud)

更新脚本在/home/rob/bin/update_tools.sh

#! /bin/bash
cd /home/rob/tools
hg pull >> /tmp/update_tools.log
hg update >> /tmp/update_tools.log
Run Code Online (Sandbox Code Playgroud)

用户 rob 的 crontab 是:

0 * * * * /home/rob/bin/update_tools.sh
Run Code Online (Sandbox Code Playgroud)

一切都非常简单。但是,当作业运行时,我们看到调用hg pull失败并输出

remote: Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么会发生这种情况 - 我是否需要采取其他一些步骤,以便在 cron 运行时它可以访问相关的公钥?该update_tools.sh脚本在 shell 中运行良好。

mercurial cron ssh-keys

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

GitHub 上多个用户的一个 Unix 帐户,它是如何工作的?

当我们在GitHub 上创建存储库时,我们始终可以使用地址“git@github.com:user/repo”访问它,但它在幕后是如何工作的?

...我的意思是,只有一个 Unix 帐户:“git”,而多个用户使用不同的键和不同的目录使用它......

我在另一篇服务器故障帖子中看到(您如何执行类似于 GitHub 的基于密钥的动态 SSH?)它可能使用命令选项,但它是如何保护的?(它如何限制用户访问他有权访问的文件夹?)

另外,它是如何管理的?它只使用一个authorized_keys-file还是有其他技巧?

ssh ssh-keys

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

AWS 连接错误:权限被拒绝(公钥)

对不起,如果这对你来说听起来多余,但相信我不是。我已经尝试了几乎大多数与此问题相关的链接,但到目前为止没有任何效果。我什至尝试了这篇文章二。以下是我迄今为止尝试过的

  1. 密钥的许可 400 以及 600
  2. ubuntu 作为用户名,因为它是 Ubuntu 14.04
  3. IP是正确的,我什至也尝试过公共DNS
  4. 密钥附加到实例
  5. 使用 FireFox 浏览器的 AWS Java 客户端 (MindTerm)。但是当我按回车键时,它会在我的 IP 上显示这一行时出现错误。即使我很幸运,它也会询问我给 ubuntu 的用户名,然后它退出并给出错误“I/O 错误 - 读取失败:未知错误”,或者只是带我回到 IP 步骤。

MindTerm home: /home/waqas/.mindterm/
SSH Server/Alias: 54.191.37.141
Connected to server running SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2

Server's hostkey (ssh-rsa) fingerprint:
openssh md5:  95:44:f1:40:07:90:00:2a:7d:9a:1f:49:a1:71:8a:0b
bubblebabble: xilon-segen-tufep-manir-rekad-lucag-fetoz-sover-hyhuh-kafiz-kixox
Run Code Online (Sandbox Code Playgroud)

在此问题之前我做的最后一件事是 2 天前我试图使用此链接在我的客户端上安装 FTP 服务器http://www.krizna.com/ubuntu/setup-ftp-server-on-ubuntu-14 -04-vsftpd/ . 不幸的是,这个链接没有按预期工作,我最终没有成功登录 FTP。今天,当我尝试使用我的密钥对登录时,它给了我错误。

以下是我的 ssh 尝试日志

waqas@waqas-itu:~/Downloads/key$ ssh -v -i test.pem ubuntu@54.191.37.141
OpenSSH_6.0p1 Debian-3ubuntu1.2, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: …
Run Code Online (Sandbox Code Playgroud)

ubuntu ftp ssh-keys amazon-web-services

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

ssh - 从 ssh-agent 检索公钥

我正在寻找一种从身份验证代理中提取公钥的方法。在将密钥添加到 ssh-agent ( ssh-add ~/.ssh/id_rsa)后,我希望能够将公钥写入文件。

ssh-add -l 为我显示指纹,但有没有办法获得完整的公钥?

谢谢你的建议

ssh-keys ssh-agent

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

为什么 ssh-copy-id 需要私钥文件

ssh-copy-id对于将公钥发送到服务器非常有用。但是如果你现在没有私钥文件,它就会失败。

$ ssh-copy-id -i my_friend_rsa.pub root@example.com

/usr/bin/ssh-copy-id: ERROR: failed to open ID file 'my_friend_rsa': No such file
Run Code Online (Sandbox Code Playgroud)

我不明白这种行为。

对我来说有两种情况:

  1. 我发送我自己的公钥
  2. 我发送同事的公钥。

第一种情况很少见。如果我可以连接到服务器,服务器已经有了我的公钥。所以ssh-copy-id在这种情况下我不需要。

第二种情况很常见。我授予其他用户访问权限。但我没有他或她的私钥。因此,这种行为使 ssh-copy-id 在第二种情况下无用。

请解释一下为什么ssh-copy-id需要私钥文件?

ssh ssh-keys

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

OpenSSH 客户端不断发送 RSA 密钥而不是 ECDSA

客户端是 Ubuntu 16.04 keychain,服务器是 FreeBSD 10.3。~/.ssh/authorized_keys服务器上只有一个密钥(这个密钥是 ECDSA p521 而不是 RSA),客户端里面有私钥和公钥~/.ssh。问题是客户端不断发送所有可用的 RSA 密钥~/.ssh- 请参阅此详细输出:

OpenSSH_7.2p2 Ubuntu-4, OpenSSL 1.0.2g-fips  1 Mar 2016
debug1: Reading configuration data /home/manuth/.ssh/config
debug1: /home/manuth/.ssh/config line 1: Applying options for r2d2.manuth.life
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to r2d2.manuth.life [103.12.163.90] port 900.
debug1: Connection established.
debug1: identity file /home/manuth/.ssh/dqar type 3
debug1: key_load_public: No such file or directory
debug1: identity file /home/manuth/.ssh/dqar-cert …
Run Code Online (Sandbox Code Playgroud)

ssh ssh-keys

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