为了让我的公共密钥到服务器,我正常的复制我的公钥的内容,然后SSH到服务器,然后运行vi .ssh/authorized_keys ,然后将我的密钥粘贴到文件中并保存。 使用SCP或者类似的东西一定要更简单一步。 当然,我想将我的密钥追加到authorized_keys ,而不是覆盖它, authorized_keys的权限需要保持在600
我想用一个空的密码来configurationOpenSSH 6.2p2作为一个服务帐户(我们将其称为“serviceacct”),它将执行以下操作: 首先尝试公钥authentication; 如果成功,则运行authorized_keys文件中指定的强制命令。 回退到空密码authentication,并运行其他地方指定的强制命令。 从本质上讲,这会给已知的用户一个行为,并为匿名用户提供另一个行为。 在一个理想的世界里,sshd_config中的这些设置将会做我想要的: PubkeyAuthentication yes PasswordAuthentication yes Match User serviceacct PermitEmptyPasswords yes ForceCommand /my/program 但是我遇到了一些问题: ForceCommand /my/program覆盖authorized_keys文件中设置的强制命令。 使用空密码似乎优先于公钥authentication。 有没有办法解决这两个问题,修改OpenSSH服务器? 我能想到的一个明显的解决方法是仅使用两个服务帐户 – 一个用于仅使用公钥authentication的已知用户,另一个用于仅使用空密码authentication的匿名用户。 我试图避免有两个用户帐户,如果可能的话。 编辑 – 为什么我会喜欢这种行为 我正在构build一个托pipe各种版本控制系统库(Subversion,Git和Mercurial)的服务。 认为GitHub或Bitbucket,但本地托pipe(这是关键,因为我们的一些工作不能离开我们的网站)。 可以说,这些版本控制系统中通用的最简单的访问方法是SSH。 每个存储库都有已知和匿名用户的可configuration访问规则。 我希望能够支持任何版本控制系统使用相同URL的已知用户和匿名用户。 由于托pipe存储库的用户是URL的一部分(例如ssh://user@host/path ),因此拥有两个不同的用户(一个用于已知用户,一个用于匿名用户)将需要两个不同的URL。 有一个技术性,我应该澄清:我实际上使用sshd_config中的AuthorizedKeysCommand指令,它指示sshd使用外部程序的输出,而不是读取〜/ .ssh / authorized_keys文件。
我使用了oh-my-zsh的ssh-agent来pipe理我的SSH密钥。 到目前为止,这么好,我只需要input我的私钥的密码一次,当我启动我的shell和公钥authentication工程很好。 但问题是密钥转发不起作用。 有2个服务器A和B,我可以使用公共密钥login。 当我ssh进入A然后从那里ssh到B,我必须提供我的密码,而不应该是这样的。 A是CentOS 5.6盒子,B是Ubuntu 11.04盒子。 我有我的本地.ssh/config : Host * ForwardAgent yes A上的OpenSSH是由CentOS提供的标准openssh 4.3软件包。 我也为A上的ssh客户端启用了ForwardAgent ,但是转发仍然不起作用。
我正试图围绕公钥密码体制如何真正以安全的方式工作。 从我可以收集的内容中,您可以访问example.com并下载他们的PGP / GPG公钥并将其添加到您的钥匙环中。 然后,他们向您发送一个用他们的私钥签名或用您的公钥encryption的文本文件(或什么) 你可以validation它的真实性和/或解密。 如果攻击者修改了在线的网站,并在他们的名下签了自己的假钥匙,并将其放在钥匙圈中,该怎么办? 然后,假设它是有效的,继续validation和解密被篡改的文件。 我假设我正在谈论MITM篡改整个networkingstream量之间,或类似的东西。 我只是不确定如何“签署”可以防止关键和数据,如果他们在过境伪造。
我们已经在Windows Server 2008 Standard服务器上安装了Cygwin ,它工作得很好。 不幸的是我们还有一个很大的问题 。 我们想通过SSH连接使用公共密钥,这是行不通的。 它总是回落到使用密码login。 我们在服务器上附加了我们的公钥到~/.ssh/authorized_keys ,并且在客户端的~/.ssh/id_dsa各个~/.ssh/id_dsa.pub有我们的私钥和~/.ssh/id_dsa.pub 。 在debuggingSSHlogin会话时,我们看到服务器提供的密钥显然是由于某种未知的原因而被拒绝的。 从启用了debugging信息的Ubuntu 9.10桌面进行连接时的SSH输出: $ ssh -v 192.168.10.11 OpenSSH_5.1p1 Debian-6ubuntu2, OpenSSL 0.9.8g 19 Oct 2007 debug1: Reading configuration data /home/myuseraccount/.ssh/config debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for debug1: Connecting to 192.168.10.11 [192.168.10.11] port 22. debug1: Connection established. debug1: identity file /home/myuseraccount/.ssh/identity type […]
我想为sshdvalidation用户的公钥,然后提示input密码,而不是一个或另一个。 这可能吗?
我正在尝试运行Ubuntu 10.04的SSH服务器,以允许来自本地networking的密码login。 对于所有其他用户,特别是通过防火墙从互联网login的用户,我想要强制基于密钥的身份validation。 我search了一下,发现了以下内容。 以下是我在/etc/ssh/sshd_config更改的内容: PasswordAuthentication yes Match Address 192.168.5.0/24 PasswordAuthentication yes 有了这个,我从另一台机器上login了192.168.5。 地址,但它不会让我缺less一个publicKey:Permission denied(publickey)。
我如何在CentOS 5.6上创build一个用户名,该用户不能用密码login。 IE他们只能使用公钥authenticationlogin和SSH。 useradd myuser -d /their-home-dir 这样做,没有打电话passwd?
多位开发人员在testing服务器上使用共享帐户,使用公钥authentication。 有什么办法找出哪个密钥用于身份validation(例如密钥注释)?
我今天正在和一个合作伙伴合作,我需要使用scp将file upload到我的服务器。 我在服务器的SSHconfiguration中closures了密码,所以我希望他们使用公钥authentication。 我在服务器上为它们生成了密钥对,并给了它们私钥并将公钥放在适当的authorized_keys文件中。 在他们解决了一堆问题之后,他们终于find了一个更有经验的系统pipe理员,他责备我这样处理关键的一代。 他说,通过给他们一个在我的系统上生成的私钥,我使他们能够对在同一台服务器上生成的其他密钥进行暴力攻击。 我甚至问他: “所以如果我有一个服务器上的帐户,我可以用密码login,但我想自动化一些东西,我在该系统上生成一个密钥对,然后给我一个强制其他的攻击媒介用户的密钥?“ 他说是的 我从来没有听说过,这是真的吗? 任何人都可以指出我对这次袭击的讨论吗?