Articles of ssh keys

从文件名中selectssh-agent的身份

问题:我有20-30个ssh-agent身份。 大多数服务器拒绝authenticationToo many failed authenticationsvalidationToo many failed authentications ,因为SSH通常不会让我尝试20个不同的密钥login。 目前,我正在使用IdentityFile和IdentitiesOnly指令手动为每个主机指定身份文件,以便SSH只会尝试一个密钥文件,这是可行的。 不幸的是,只要原来的密钥不可用,就会停止工作。 ssh-add -l显示每个密钥文件的正确path,并且它们与.ssh/config的path匹配,但是不起作用。 显然,SSH通过公钥签名而不是文件名来select签名,这意味着原始文件必须是可用的,以便SSH可以提取公钥。 这有两个问题: 只要我拔下闪存驱动器的钥匙,它就停止工作 由于密钥文件在远程主机上不可用,它使得代理转发无用 当然,我可以从我的身份文件中提取公钥并将其存储在我的计算机上,以及我通常login的每台远程计算机上。 这看起来不是一个理想的解决scheme,但。 我需要的是可以通过文件名从ssh-agent中select一个身份,这样我就可以使用.ssh/config或通过传递-i /path/to/original/key来轻松select正确的-i /path/to/original/key ,即使在远程主机我SSH'd成。 如果我可以“昵称”这些键,甚至不需要指定完整的path就更好了。

OpenSSH守护进程将忽略ServerKeyBits指令

我遇到了Fedora 19 x86_64虚拟机的问题。 它似乎忽略了我的4096位密钥设置。 我已经将ServerKeyBits指令设置为4096 ,停止了sshd服务,删除了/etc/ssh/目录中的所有主机密钥,然后重新启动了sshd服务。 它会创build2048位的新密钥。 我知道这一点,因为当我做ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub它返回2048但在另一台机器,我已经做了这个返回4096 。 为什么我的OpenSSH服务忽略了ServerKeyBits指令? 似乎没有忽略其他指令,如closures密码authentication,只允许密钥对authentication。 我安装了openssh-6.2p2-7.fc19.x86_64和openssl-1:1.0.1e-37.fc19.1.x86_64 。 提前致谢。 我的configuration文件如下: # $OpenBSD: sshd_config,v 1.89 2013/02/06 00:20:42 dtucker Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/local/bin:/usr/bin # The strategy used for options in […]

确定某人最后一次从密钥login到服务器的时间

我试图跟踪用户最后一次用某个密钥login到Linux服务器。 因此,用户secure在~/.ssh/authorized_keys有5个密钥,我怎样才能跟踪每个密钥的使用时间和使用什么IP访问服务器? 理想情况下,我可以看到Key 1最近一次使用是从127.0.0.1开始的,5天前是从10.0.0.5开始使用Key 2,Key 3和4从未使用过,Key 5是2周前从8.8 .8.8。

为非root用户设置公钥授权的SSH

我能够使用公共密钥为root用户设置sshlogin,并试图对非root用户应用相同的逻辑。 我试图排除这个问题是徒劳的。 我使用本地计算机和远程服务器的centos。 这里是我的远程服务器的sshd_config文件的要点, RSAAuthentication yes PublicKeyAuthentication yes AuthorizedKeysFile /etc/ssh/user/authorized_keys PasswordAuthentication no UsePAM no PermitRootLogin without-password 我已经将我的授权密钥文件从用户的家中移到了/ etc / ssh / user / authorized_keys,因为我在centos中阅读了有关家庭目录encryption的内容。 我还更改了与非root用户关联的所有文件/目录的所有权。 不知道我在configuration中缺less什么步骤,因为相同的configuration对于根远程login非常有效。

ssh命令行指定服务器主机密钥指纹

使用ssh命令行(OpenSSH),我可以指定服务器的主机密钥指纹吗? 这是winscp.com使用(例如) -hostkey="ssh-rsa 2048 AA:BB:CC…etc 我已经阅读了手册页几次,我很抱歉,如果我错过了那里显而易见的。 我不想只是自动接受主机密钥,我不想要求用户更新其known_hosts ,而是在命令行上以某种forms指定主机密钥。

Ansible与SSH密钥

从木偶移到Ansible。 就像它没有代理和SSH驱动一样。 我只是设置了两个testing虚拟机。 一个作为Ansible服务器(是矫枉过正),另一个作为示例客户端(随机Linux服务器)。 我们所有的服务器都只使用公共密钥对authentication。 最初对于Ansible来说,这是有些问题的。 我很(几乎可以肯定)Ansible可以使用密钥对,但是我似乎找不到一个很好的例子。 我通过做一个专门为Ansible创build了一个密钥对 ssh-keygen -t rsa -b 4096 然后我把公钥复制到客户端。 当我通过标准的SSH进行testing时,密钥对身份validation非常有效。 现在来testingAnsible。 我把testing客户端放在Ansible主机文件中,并使用唯一正确的语法来使密钥对工作。 [TEST] 10.0.0.5 ansible_ssh_private_key_file=~/.ssh/id_rsa 当我尝试运行一个像这样的基本testing模块 sudo ansible all -m ping 我收到以下错误信息 10.0.0.5 | FAILED => SSH Error: Permission denied (publickey,password). while connecting to 10.0.0.5:22 It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output […]

如何在sshd中禁用所有的身份validation?

这里有一个问题,我已经find了绝对没有答案:你如何configurationsshd,让任何人都可以免费SSH进入框中没有密码或密钥authentication? 目的是允许任何人运行“ssh user @ host”并进入方框,而不必提供密码或configuration任何密钥。 这甚至有可能吗? 在有人问起之前,我很清楚这在实践中是一个坏主意,但是,这纯粹是为了学习目的而使用的沙盒服务器。

在Windows中更改puttygen私钥的密码

我在Windows中有一个私钥,由puttygen.exe创build。 我使用默认选项来保存它,该工具自动给它一个.ppk扩展名,它看起来像这样: PuTTY-User-Key-File-2: ssh-rsa Encryption: none Comment: rsa-key-20130627 Public-Lines: 4 AAAAB3NzaC1yc2EAAAABJQAAAIBnvvAhyMs4rdlQd4OdajDw4jIPi6vIjrWjt4l4 5C3wHOSxyQQdtSA8XT3K0rSBnNtZRJTb5mfix67qQe3pHCTMSNsYIaBi8xQJHZRa RxdY+1VtGnSlEma8KO2We9eDNCGiwrRTUzqvTiGCnzU0pF1MXxu3ObISJcpqv+sQ 1GB0cw== Private-Lines: 8 AAAA………. Private-MAC: XXXXXXXXX 现在我需要更改密码,根据文档,这似乎很简单: puttygen.exe -P key.ppk 但是,这popup一个窗口,这个错误: PuTTYgen Error: Couldn't load private key (unable to open file) 我也尝试使用Git Bash附带的ssh-keygen来更改密码: ssh-keygen.exe -p -f key.ppk 它要求我的旧密码,但它给了我错误的Bad passphrase错误。 这是不正确的,因为我可以在pageant.exe添encryption钥,而且我不会忘记密码。 还有什么我可以尝试更改或删除密码?

closuresssh密钥的严格检查

每个用户每天创build并销毁15个虚拟机。 VM是在公司内部的OpenStack云中创build的。 每当一个新vm被分配一个先前分配的ip地址,用户就会得到可怕的主机密钥validation失败错误。 这是因为ssh密钥与用户known_hosts文件中的IP地址不匹配。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by the […]

CentOS忽略了我的公钥

我正尝试使用SSH连接到我自己的CentOS服务器; 我可以很好地连接密码; 我试图连接我的公钥,但服务器不会尝试公钥authentication。 我在CentOS维基上按照这个页面上的所有说明,并validation了以下几点: 我正在运行CentOS 6.0或更高版本 我的sshd_config有以下几点: PermitRootLogin no PubkeyAuthentication Yes RSAAuthentication yes AuthorizedKeysFile .ssh/authorized_keys 我在客户端的主目录中的.ssh /文件夹中创build了一个私钥 公钥的完整文本(由ssh-keygen生成)在服务器的主目录中的.ssh / authorized_keys文件中占用一行。 我在客户端和服务器上设置了以下权限模式: chmod 700 .ssh chmod 600 .ssh/*