虽然不打算交叉发布,但是在将这个问题发送到SecurityFocus的OpenSSH列表之后,我注意到这个列表的stream量很低(前一个post大约是5个月前)。 这就是说,我决定在这里重新发布,因为这个问题可能会得到更多的眼球(如果得到回答,将会有更好的机会被其他人使用): 问题:我有一个从内部机器到我的DMZ中的主机的反向SSH隧道,它被设置为在系统启动时启动,并在隧道失败时重新启动。 但是,当隧道中断(例如,由于networking中断)时,由于DMZ主机上的端口正在使用而无法重新build立。 从我读的OpenSSH邮件列表档案和其他地方,这似乎是因为端口处于TIME_WAIT状态。 这很好:我可以在build立隧道的脚本中放入睡眠声明。 但是,这导致了两个问题: 1)如何确定在特定的Linux(或其他)系统上如何定义TIME_WAIT间隔? 虽然我可以睡5分钟,没问题,但最好尽可能多地刮胡子。 2)尽pipeOpenSSH似乎不支持“ClearAllForwardings”选项,但是有没有类似的function可以使auth'd连接自动拆卸并重新创build它之前build立的现有连接? 长时间睡眠可能会“足够好”,但如果可能的话,我宁愿更有效地处理TIME_WAIT条件。 我感谢任何指导或build议!
我试图设置一个环境,在这个环境中,某个组中的许多用户可以通过SSH连接到服务器,然后使用密钥交换或密码在其上执行一组预定义的命令。 到目前为止,我被告知要查看authorized_keys“命令”部分,但据我所知,这只对非人类用户有用。 有没有办法将某个用户组的许多命令列入黑名单或白名单? 例如,组X中的用户应该能够使用ls ,/ /etc/init.d , rm ,但是没有其他的。
我目前在我的.ssh / config文件中有这个: Host * AskPassGUI no IdentityFile ~/.ssh/%r@%h IdentityFile ~/.ssh/%h IdentityFile ~/.ssh/id_dsa 当我ssh到一个主机,我没有一个密钥文件,login工程,但我也得到这些错误: no such identity: /Users/user/.ssh/[email protected]: No such file or directory no such identity: /Users/user/.ssh/example.com: No such file or directory 理想情况下,我想ssh检查文件,但不会抛出一个错误,如果他们中的任何一个找不到。 这个想法是能够把我的.ssh目录下的名为“[email protected]”或“example.com”的私钥放到我的.ssh目录下,并且在使用这个用户/主机组合login时使用这些私钥,而不是抱怨那么如果文件丢失,则正常login。 我不想使用这个答案中描述的Host指令,因为我有很多密钥文件,我宁愿不必将它们添加到文件夹,然后编辑configuration文件,并添加每个主机指令。 这样的事情可能吗?
基本上,我创build了一个没有主目录的新sudoer( adduser –no-create-home ),但是现在,每次我用它login时,都会收到“ Could not chdir to home directory: No such file or directory ”的提示。 是否有一个文件,指定用户会话开始,所以我可以改变这个?
这是情况。 我有5000个服务器分成100个“组”。 每个“组”有1个SSH密钥对,这将允许访问组中的任何服务器。 我有60个用户(一些人,一些没有)需要访问所有5000个服务器。 用户都在不同的计算机上,一些PC(putty)一些Linux(ssh)。 手动:向“组”添加新服务器似乎很简单。 添加/更新用户将是一场噩梦。 添加/更新一个新的组将是一场噩梦。 将组密钥同步到用户站将是一场噩梦。 ssh-agent / pageant适用于单个工作站上的单个用户,但似乎不具备可扩展性。 有软件可以处理这个pipe理? 某种代理也许? 还是基于自动服务器的密钥检索协议 编辑 我很欣赏迄今为止的帮助,但我认为我不清楚或不了解这些build议。 更多信息:每台服务器都是远程系统,无法访问Internet,连接速度一般较慢。 每个服务器在其authorized_keys文件中只有一个条目。 我不想要或不需要个人用户密钥。 我只想让很多不同的人为每个组使用相同的密钥。 现在我们正在使用密码authentication,并在一张纸上保存每个组的密码列表。 这对我们的团队有用。 但是如果我们切换到基于密钥的身份validation,它将不起作用。 这些build议还是有意义的吗? 如果是这样,你可以更具体的实施细节。
我有一个使用EBS的AWS EC2实例,我想停止使用当前的私钥,并使用新的私钥。 据我所知,只是删除AWS控制台上的密钥对,只是删除公钥,并不阻止通过SSH使用(旧)私钥访问实例。 我尝试了一个解决方法( 详细在这里 ),但我意识到这并不妨碍使用旧的私钥。 有没有办法继续使用这个实例,并防止使用旧的私钥,并发出一个新的,而不必创build一个新的实例,并重新安装一切? 你可以进入Linux和SSH并手动删除对特定键的支持吗? 我可以根据需要提供有关实例configuration的详细信息。
在我的pipe理员工作期间,我需要login到几个远程的ssh服务器。 我与三个不同的计算机客户端工作,所有这些都是Debian GNU / Linux系统。 我保留一个工作空间目录,我把我需要做的所有工作都放在这个目录下,该目录包含一个bashrc文件和一个ssh_config文件。 我手动同步该目录内容与脚本,使用rsync从一台客户端计算机到其他客户端,因为我移动并开始使用不同的客户端。 三个客户端上的本地用户都需要最less的configuration,所以如果我需要创build一个新的本地用户或重新安装一个客户端,我只需要rsync工作空间,并添加一个引用到我的自定义workspace/bashrc在真实用户的$HOME/.bashrc 。 我的自定义workspace/bashrc创build了几个别名,我得到我平常的环境,无论我使用的客户端。 我的自定义workspace/bashrc创build别名以这种方式连接到远程服务器: alias s1='ssh -F ~/workspace/etc/ssh_config server1.example.com' 我只需在任何客户端的terminal中键入s1loginserver1,因为我的自定义ssh_config设置了所需的公钥authentication选项,正确的端口server1正在侦听并且正确的用户。 现在这就像一个魅力,只要ssh命令是我所需要的。 不幸的是,一旦我需要另外一个使用ssh命令,事情变得更加混乱。 例如,如果我需要rsync什么东西到其中一台服务器,我不得不写下整个ssh命令: rsync -Pavz –delete -e "ssh -F $HOME/workspace/etc/ssh_config" … 其他命令(如scp , ssh-copy-id等) scp发生类似的情况。 我希望能写 rsync -Pavz –delete -e "ssh" … 而是让ssh从环境variables中取出它的configuration文件名,这样我就可以在我的bashrc设置这个环境variables,并且每个ssh调用都能自动工作。 有这样的环境variables还是有不同的解决scheme?
如果你想使用SSH上传文件到另一台服务器, pscp是一个非常less的工具。 唯一的问题是,它无法检测目标文件是否已经更新(基于date时间)。 如果文件没有改变,我不想再次上传文件。 有没有其他的pscp有这个function? 我宁愿能够使用pageant进行身份validation的解决scheme。
我有一个Ubuntu服务器上的远程裸Git存储库,其中的文件是由用户my_project和组my_project拥有相应的权限设置。 所有的委托人都属于my_project组。 当有人提交,然后从用户my_user任何Ubuntu笔记本电脑通过SSH my_user送到服务器,远程存储库中的一些文件被创build(更新?),所以他们现在属于用户和组my_user 。 当然,当其他人想要提交时,他现在不能这样做,因为他没有写权限。 我可以将权限设置为777,但这不是最好的select。 有什么办法可以解决这个问题,同时保持有限的写权限?
我有一台Ubuntu的Linux机器,我已经login,X服务器正在运行(它是通过loginpipe理器像gdm)。 我可以通过SSH访问这台机器。 我的目标是在这台机器上启动x11vnc并将其连接到已经运行的X服务器上。 当我进入机器并启动x11vnc时,它说: X11 was unable to open the X DISPLAY ":0", it cannot continue. 如果我没有物理访问权限并且Xserver已经启动,如何在远程机器上启动x11vnc。 我想这样做的原因是因为远程机器有几个窗口打开,我想工作。 编辑:我也试过x11vnc -find。 这一次它没有给我这个错误信息,并能够检测到客户端连接: Got connection from client xxxx … wait_for_client: find display cmd failed wait_for_client: bad reply ' ' 所以看来命令只是延迟了不可避免的。 谢谢,