问题: 我们有许多dev / qa / prod RH / Solaris服务器,它们之间有多个拥有ssh信任的帐户,包括不同环境中的服务器(prod-> prod,还有qa-> prod)。 我知道这是一个不好的做法,我试图解决它的第一步是要了解哪些帐户可以ssh到哪些其他帐户没有密码框。 我的方法是login到指定服务器列表的shell脚本, sudo通过/ etc / passwd文件获取所有帐户和主目录的列表,查看后者是否存在.ssh和id_rsa.pub和/或id_dsa.pub和authorized_keys并将每个帐户每个帐户的这些信息输出到运行脚本的机器上的stdout 。 用户可以指定一个密钥供ssh使用,这不是默认的事实是一个公认的限制。 (我假设情况并非如此) 然后使用输出创build一个HTML页面,其中包含从上面的输出创build的JavaScript对象{username,machine_name,rsa_key,dsa_key,authorized_keys []},并使用JQuery(或类似的)显示层次结构(tbd如何)。 我的问题是,解决这类问题是否已经存在? 如果没有,我的方法的任何意见将是受欢迎的。
有很多类似这个问题的答案,但我似乎无法find一个明确的答案。 它们要么至less抓取一次公钥,要么完全忽略该密钥,要么直接写入known_hosts文件(意味着没有哈希) 我有服务器的指纹和/或公钥。 我想要一个shell命令将其添加到客户端的known_hosts文件。 这必须使用任何configuration(散列/不散列) 另外,脚本会从这个服务器做一个git pull,所以我不知道在这个时候提供端口信息是否相关。 请告诉我,如果是。 谢谢。 如果这个问题已经得到解答,我可以随意指出正确的方向。 PS – 额外的信息:我问的关于端口的原因之一是因为我做了以下没有成功(我知道这是从主机,我宁愿不要做)的关键: ssh-keygen -R my.awesome.host # hostname ssh-keygen -R 1.2.3.4 # IP ssh-keygen -R my.awesome.host,1.2.3.4 ssh-keyscan -H my.awesome.host,1.2.3.4 >> ~/.ssh/known_hosts ssh-keyscan -H 1.2.3.4 >> ~/.ssh/known_hosts ssh-keyscan -H my.awesome.host >> ~/.ssh/known_hosts 但是,当我克隆(通过SSH)我遇到了一个响亮的: The authenticity of host '[my.awesome.host]:7999 ([1.2.3.4]:7999)' can't be established. RSA key fingerprint is […]
首先,我知道这个问题已经有一百万次了,我已经看了所有我能find的东西,而且还不能解决问题。 我遇到这个问题时,从我的Mac ssh'ing我的Ubuntu服务器上一个全新的Ubuntu安装(我重新安装,因为这个问题)。 我有SSH端口映射到7070,因为我的ISP阻止22。 在客户端: bash: ssh -p 7070 -v [email protected] debug1: Reading configuration data /etc/ssh_config debug1: Connecting to address.org port 7070. debug1: Connection established. debug1: identity file /home/me/.ssh/identity type -1 debug1: identity file /home/me/.ssh/id_rsa type 1 debug1: identity file /home/me/.ssh/id_dsa type -1 ssh_exchange_identification: Connection closed by remote host 以下是我所做的尝试解决问题的方法: 确保我的maxstartups可以: bash: grep MaxStartups /etc/ssh/sshd_config […]
我想允许一些信任的用户scp文件到我的服务器(到一个特定的用户),但我不想给这些用户一个家,既不sshlogin。 我有问题要了解我必须创build的用户/组的正确设置才能实现。 我会举一个例子。 有: MyUser@MyServer MyUser属于组MyGroup MyUser的家可以说, /home/MyUser SFTPGuy1@OtherBox1 SFTPGuy2@OtherBox2 他们给我他们的id_dsa.pub ,我把它添加到我的authorized_keys 我认为,我会在我的服务器上做类似的事情 useradd -d /home/MyUser -s /bin/false SFTPGuy1 (和另一个相同) 最后, useradd -G MyGroup SFTPGuy1 (再次,对于其他人) 我希望那时,SFTPGuys能够sftp -o IdentityFile=id_dsa MyServer并被带到MyUser的家… 那么,情况并非如此… SFTP只是不断要求我input密码。 有人能指出我错过了什么吗? 非常感谢, F。 [ 编辑 :在StackOverflow的Messa问我,如果authorized_keys文件是可读的其他用户(MyGroup的成员)。 有趣的是,这是我的答案: 那么,它不是(它是700),但后来我将.ssh目录和auth文件的权限更改为750,但仍然没有效果。 猜猜值得一提的是我的家庭目录( /home/MyUser )对于这个组也是可读的。 大多数dir是750,他们放置文件的特定文件夹是770。 然而,关于auth文件,我认为authentication将由MyServer上的本地用户执行,不是吗? 如果是这样,我不明白需要其他用户阅读…好吧..只是想知道。 ]
我如何configurationOpenSSH(5.9)拒绝给定的一组公钥? 我知道我可以从每个.ssh/authorized_keys文件中删除密钥,但我想在服务器范围内完成。 想象一下,一个私钥被攻破的情况,我想阻止任何用户将相应的公钥放入其authorized_keys (是的,他们仍然应该被允许编辑他们的),它的工作。 为了达到这个目标,我需要一些在系统层面上有用的东西。
我已经阅读了几篇文章,如何使用Rsync和公钥authentication自动备份文件。 他们都非常相似。 我刚刚完成一切设置,一切正常,但…我刚刚发现一篇文章,说这是不安全的。 我做了以下几点: 在备份服务器上,我生成了公钥和私钥。 我将公钥复制到远程(原始)服务器目录: /var/sites/.ssh (文件authorized_keys )。 该目录归"user12" 我将以下内容添加到了authorized_keys文件: from="BACKUP.SERVERS.IP.ADDRESS",command="/root/validate_rsync" 我使用以下内容创build了一个文件/ root / validate_rsync: #!/bin/sh echo $SSH_ORIGINAL_COMMAND >> /var/log/synchronize-log.log case "$SSH_ORIGINAL_COMMAND" in *\&*) echo "Rejected" ;; *\;*) echo "Rejected" ;; *\(*) echo "Rejected" ;; *\{*) echo "Rejected" ;; *\<*) echo "Rejected" ;; *\>*) echo "Rejected" ;; *\`*) echo "Rejected" ;; *\|*) echo "Rejected" […]
我试过yes | ssh [email protected] yes | ssh [email protected]尝试接受RSA密钥指纹,但如果确定要连接,仍然会提示。 有没有办法让这个自动?
我在Ubuntu 12.04testing服务器上使用Puppet推出了新的/etc/ssh/sshd_config 。 configuration与以前的configuration完全相同,除了它已经删除了以下行: HostKey /etc/ssh/ssh_host_ecdsa_key 我注意到我收到了很多类似但不同的错误,试图连接到从那开始的那个盒子,例如:“ %hostname%的RSA主机密钥已更改,并且相应IP地址%ipaddress%的密钥未更改。 “ 我以为这是因为我的电脑以前使用ECDSA密钥,现在不可用。 所以我sshd_config行加回到sshd_config并重新启动了SSH。 这并没有完全解决这个问题,从那以后,我一直在遇到不断的问题。 我可以很好地连接到服务器几次,甚至可以连续几天。 然后突然间,我开始得到错误,主机密钥已经改变,服务器停止接受我的公钥进行身份validation。 似乎总是有一阵子搞砸了一段时间,从不同的位置连接起来,我突然可以再次与我的公钥连接起来,而且我不再会得到一个可能的中间人(man-in-the-the-middle)的错误攻击。 我几天前尝试重新生成所有3个主机密钥(删除它们,然后运行dpkg-reconfigure openssh-server ,重新生成它们)。 正如所料,我必须删除旧的密钥,并接受新的之前,我可以连接。 我想也许它是固定的,但问题现在回来了。 没有任何修改/etc/ssh/任何主机密钥,因为我最后重新生成了它们 – 所以可能会导致我经常无法连接,使我的公钥无法工作,最终接受新密钥事情再次开始正常工作一段时间? 当事情不起作用的时候(当我得到有关主机密钥更改的错误,然后服务器停止接受我的公钥),没有任何东西写到服务器的/var/log/auth.log 。 这使我想到,也许它有时会碰到不同的机器,但我不知道这是可能的,因为DNS条目是正确的,并总是返回相同的IP地址。
原谅我的问题,但我正在采取婴儿的步骤。 我已阅读了为什么使用SSH密钥login到我的服务器很重要。 但是,在我看来,如果只从一台计算机login到服务器,这是非常有用的。 如果我离开普通电脑,需要login到服务器,该怎么办? 谢谢
我有几个用户在OSX上使用SmartCVS来与我们的CVS库进行交互。 我们使用cvs :ext: (SSH2)方法来访问存储在远程linux系统上的仓库。 我们使用ssh密钥authentication,并要求用户使用密码encryption他们的私钥。 OSX附带的ssh-keygen版本使用AES-128-CBC来encryption私钥,显然任何ssh库SmartCVS都不支持解密这个密码,因为它会引发错误。 如果我使用PuTTYgen在Windows上生成一个密钥,并将该密钥移到OSX,事情工作正常。 PuTTYgen(和Linux上的大多数版本的ssh-keygen)使用DES-EDE3-CBC密码,SmartCVS能够解密而不会出现问题。 所以,我的问题是:有没有办法告诉ssh-keygenencryption私钥时使用哪个密码? OSX上的ssh-keygen(1)手册页并没有提到可以设置密码types的任何内容,但是我希望可以通过其他方式转换成另一种密码types。