我们有许多不同的系统,由几个人管理。我们选择使用 SSH 公钥认证来访问这些系统。这很好用,因为不需要管理或共享管理帐户密码,不需要记住各种系统的密码(只有私钥的密码),不需要与每个远程命令交互(输入密码) .
问题是,安装在系统上的公钥需要以某种方式进行管理。人们来来去去,钥匙可能会被泄露,责任会发生变化(今天被授权进入一个系统的人明天可能被授权访问另一个系统)。目前我们通过手动编辑每个需要它的帐户上的 ~/.ssh/authorized_keys 文件来管理它,但这是很多工作并且容易出错。
在这种情况下,有没有现成的工具来管理公钥?您有自己的解决方案吗?或者,以这种方式管理系统的整个想法是否有缺陷?
我正在尝试运行这个简单的配置脚本,但在运行vagrant up和vagrant provision命令时遇到错误。
我读到我需要创建一个/etc/ansible/hosts我已经完成的文件,并用以下内容填充它:
[vagrant]
192.168.222.111
Run Code Online (Sandbox Code Playgroud)
我的 SSH 配置(删除了一些细节):
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/ashleyconnor/.vagrant.d/insecure_private_key
IdentitiesOnly yes
LogLevel FATAL
Host server
HostName XXX.XXX.XXX.XXX
User ash
PreferredAuthentications publickey
IdentityFile ~/.ssh/ash_ovh
Host deployer
HostName XXX.XXX.XXX.XXX
User deployer
PreferredAuthentications publickey
IdentityFile ~/.ssh/deployer_ovh
Host bitbucket.org
PreferredAuthentications publickey
IdentityFile ~/.ssh/bitbucket
Host github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github
Host staging
HostName 192.168.56.10
User deployer
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
我收到的 …
我有一个在 Ubuntu Precise 12.04 上运行的 OpenSSH 5.9p1 服务器,它接受来自内部网络和 Internet 的连接。我想要求对来自 Internet 的连接进行公钥身份验证,但对来自内部网络的连接接受公钥或密码身份验证。我可以配置 OpenSSH 来实现这一点吗?
我在 AWS EC2 上创建了一个新的 Windows 实例,使用我通过从本地机器上传我的公钥创建的密钥对。
实例启动正常,但不会解密密码。它报告:

我确定我上传了正确的密钥。我已经验证指纹与 AWS 使用的奇怪指纹格式匹配。但它只是不会解密。
我试过上传密钥文件,并将其粘贴到表单中。
我最终发现它没有剥离尾随的换行符,并删除了键中的空行。但是,当我单击“解密密码”时,这只会让我遇到一个新错误:

我有一个 Windows 作为我的主要操作系统。使用 VMware 播放器,我将 Ubuntu 服务器 12.4 设置为来宾计算机。Ubuntu 服务器有“ubuntu”用户。
我创建了一个新的 EC2 实例 + 设置 pem 密钥。在 Windows 机器上,当我使用 putty+pem 密钥时 - 我可以 ssh。
我将 pem 密钥添加到我的 VMware Ubuntu 服务器 (/home/ubuntu/.ssh/) 此外,我设置了以下权限:
chmod 700 /home/ubuntu/.ssh
chmod 600 /home/ubuntu/.ssh/*
通过Ubuntu的服务器-我想SSH到EC2实例没有成功:
ssh ubuntu@EC2_IP Permission denied (publickey)
。如果我明确使用 pem 密钥,它会起作用:
ssh -i /home/ubuntu/.ssh/NAME.pem ubuntu@EC2_IP
- 请注意,我必须使用密钥的直接路径,否则,我会得到
Warning: Identity file NAME.pem not accessible: No such file or directory.
Permission denied (publickey).
请指教。谢谢!
这是很容易让我连接到我的远程MySQL服务器上使用AWS sequelpro,但是我用的MongoDB做同样的事情挣扎。
我尝试通过命令行设置 ssh 隧道,如下所示:
ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com
Run Code Online (Sandbox Code Playgroud)
我也试过用 ip 地址替换主机
这个想法是将端口 9999 上的所有 mongodb 连接转发到主机上端口 27101 上的连接。但是当我运行命令时:
mongo --host localhost --port 9999
Run Code Online (Sandbox Code Playgroud)
连接失败,我得到了这个:
MongoDB shell version: 2.6.0
connecting to: localhost:9999/test
channel 2: open failed: connect failed: Connection timed out
channel 3: open failed: connect failed: Connection timed out
2014-05-22T14:42:01.372+0300 DBClientCursor::init call() failed
2014-05-22T14:42:01.374+0300 Error: DBClientBase::findN: transport error: localhost:9999 ns: admin.$cmd query: { whatsmyuri: 1 } at src/mongo/shell/mongo.js:148
exception: connect failed …Run Code Online (Sandbox Code Playgroud) 我已尝试yes | ssh root@10.x.x.x尝试接受 RSA 密钥指纹,但仍会提示我是否确定要连接。有没有办法让这个自动?
如何将我的密钥对(通常是 id_rsa 和 id_rsa.pub)存储在 azure 密钥保管库中。我想将公钥放在我的 GIT 服务中,并允许虚拟机从 Azure 密钥保管库下载私钥 -> 以便它可以安全地访问 GIT。
我尝试制作一对 PEM 文件并将它们组合成一个 pfx 并将其作为秘密上传,但我返回的文件似乎与任一 pem 文件完全不同。
我还尝试将我的密钥手动输入 Azure,但它会将换行符转换为空格。
尝试通过 SSH 连接到远程计算机,但仍要求输入密码。
我有多台运行 SElinux 的计算机,其中只有一台让我在没有密码的情况下很难使用 ssh。
我做了一个 ssh-copy-id,我可以在 .ssh/authorized_keys 中看到我的密钥。
我 chmod 700 .ssh 和 chmod 600 ./ssh/* 中的所有文件
如果我执行 ssh -v 这是我的输出:
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to wcmisdlin05 [10.52.208.224] port 22.
debug1: Connection established.
debug1: identity file /home/jsmith/.ssh/identity type -1
debug1: identity file /home/jsmith/.ssh/id_rsa type 1
debug1: identity file /home/jsmith/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 …Run Code Online (Sandbox Code Playgroud) 为了在新机器和环境上更轻松地设置无密码 SSH,是否有任何原因id_rsa.pub不能在网络上的某个地方发布文件(只是密钥对的公共部分)?例如在 dotfiles GitHub 存储库中。
我知道:
id_rsa文件(密钥对的私有部分)必须小心保护和但我的搜索没有出现任何明确的建议,即允许或鼓励这样做。
出于好奇,同样的建议是否适用于没有密码短语的密钥对?
ssh-keys ×10
ssh ×9
amazon-ec2 ×2
linux ×2
ansible ×1
automation ×1
azure ×1
database ×1
git ×1
github ×1
known-hosts ×1
mongodb ×1
passphrase ×1
public-key ×1
rsa ×1
security ×1
selinux ×1
ssh-tunnel ×1
vagrant ×1
windows ×1