我们有一个使用 SSH 连接到服务器的应用程序:应用程序的网络流量(数据库、一些自定义 TCP 协议等)通过 SSH 连接进行隧道传输。
我们在服务器上使用密钥对和非特权帐户,但用户仍然可以使用他们的密钥登录服务器,或者做任何他们想做的端口重定向。
有没有办法将 SSH 服务器配置为仅允许某些隧道(受隧道的结束地址和端口限制)并禁用 shell 访问?(我们使用 OpenSSH)
[编辑]
我遇到了这篇文章,似乎删除 shell 访问权限还不够。相应地更改了标题和描述。
我正在尝试使用来自 Windows 客户端的腻子连接到 solaris 服务器。SSH 连接不起作用。终端窗口只给出错误消息“网络错误:连接被拒绝”。使用腻子的 Telnet 在同一台服务器上运行良好。有人可以详细说明在这种情况下需要检查哪些配置吗?如何排除故障?(同一网络中还有其他服务器允许 SSH 连接。)
是否有用于 Linux 命令行的 ssh 密钥管理工具,可以在输入一次密钥的密码短语后使密钥可用于各种窗口?我正在考虑类似于 Putty's pageant 的东西,它需要密码来加载密钥,然后在需要连接时将密钥提供给 Putty。
在 Linux 中,我在终端窗口中使用命令行,即使使用代理,每个窗口似乎都需要输入密码。如果我想要多个窗口进入远程主机,我必须为每个窗口重复密码。
我想我忽略了 ssh 或代理的一些明显功能,但到目前为止我找不到办法做到这一点。
我正在升级apt-get upgrade我的 Ubuntu 7.04 服务器上使用的 openssh-server 包,以修复 debian PRNG 安全错误。我是通过 SSH 连接(Windows 上的腻子)这样做的,我认为没问题,但是......
升级似乎挂在以下位置,就像它希望我在“窗口”中单击“确定”但我当然不能,因为我只是在一个外壳中。
设置 openssh-server (4.3p2-8ubuntu1.5) ... 包配置
âââââââââââââââââââââââ⤠Configuring openssh-server âââââââââââââââââââââââââ
â â
â Vulnerable host keys will be regenerated â
â â®
â Some of the OpenSSH server host keys on this system were generated with â
â a version of OpenSSL that had a broken random number generator. As a â
â result, these host keys are from a well-known set, are subject to …Run Code Online (Sandbox Code Playgroud) 在 bash(和其他 shell)中,可以使用 $() 和 ``(反引号)之类的东西将命令的结果插入到命令行中。
现在,如果您有类似的东西,但对于 ssh 会话,那就太好了。因此,您处于 ssh 会话中,需要来自您自己计算机的一些信息,并希望将其放入您所连接计算机的内部命令行中。
例如,假设您想直接访问 mysql 控制台。你可以使用这样的命令:
ssh user@example.com "mysql -u blub -pmypass"
Run Code Online (Sandbox Code Playgroud)
这可行,但问题是,您可以在 ssh shell 进程的命令行中看到密码。
为了解决这个安全问题,我想要这样的东西:
ssh user@example.com "mysql -u blub -p\$(ssh-on-client 'cat pass-file')"
Run Code Online (Sandbox Code Playgroud)
它将cat passfile在 ssh 客户端而不是服务器上执行。有这样的事情吗?你有什么其他技巧可以做到这一点吗?
更新:我感谢参考我的例子的答案,但除非他们回答真正的问题,否则我不会接受它们。也就是说,是否可以从 ssh 会话内与 ssh 客户端计算机进行通信。(我知道这可能构成一个可能的安全问题)
可能的解决方案:
我们正在使用默认使用 ssh 密钥进行身份验证的 Amazon EC2 服务器。我们想为服务器中的另一个用户提供访问权限,但我们不想给出我们的初始密钥,因此我们想创建第二个密钥,以后可以删除。有没有办法接受多个键?
这篇文章对设置第一个键非常有帮助。
我知道如果在两台服务器上都设置了身份验证密钥,则可以在没有密码的情况下通过 ssh 连接到另一台服务器。但我想知道是否有可能允许来自任何 IP(已知/未知)的用户通过无密码 ssh 访问一个目录,在那里他们可以以最简单的方式保存他们的东西?
我正在寻找 SSH 解决方案,而不是 FTP。
我今天从客户那里收到了一个用于访问 EC2 实例的腻子密钥文件 (.pkk)。由于我不使用windows,有什么办法可以在Mac OS X 10.5的命令行ssh界面上使用key吗?
我有一个到远程服务器的 ssh 连接,刚刚收到一条消息
来自 foo@foo 的广播消息 (/dev/tty2) 在 19:17 ... 系统正在关闭以重新启动! 远程主机关闭了到 foo 的连接。 与 foo 的连接已关闭。
我只是想知道这个消息是服务器重启时自动发送的还是管理员亲自发送的?
感谢致敬!
经过长时间的犹豫,我终于订购了一个小型 VPS 供自己使用,主要是网络托管(几个网站,供我和朋友使用)以及其他(mumble 服务器托管、wave 服务器等)。它本质上是一个基本的 LAMP 盒。
我想为一些朋友提供一些托管空间,并允许他们对其进行调整。这意味着他们将需要自己的 FTP 访问权限,也许还需要 SSH(如果足够安全)。
我在 LAMP 设置/管理方面有一些经验,但在一般服务器管理(用户设置、ftp 等)方面经验不多。这就是为什么我想从基础开始并构建可靠和安全的东西。
我的每个朋友都会在系统上拥有自己的用户,但有什么特别之处吗?我是为每个用户创建一个组,还是他们都共享同一个组?我想这只有在我允许他们通过 SSH 登录时才会改变,但稍后会详细介绍。
我首先关心的是共享网络托管。即使我不会托管敏感数据,我也不希望用户弄乱其他人的文件。我在使用 PHP/CGI 和 Apache 之前解决了这个问题suexec,但是在阅读了Stuart Herbert 关于 Web 平台的精彩文章后,我觉得用mpm-itk. 您对此有何反馈意见?
由于我的目标用户有点古怪,我在考虑让他们调整自己的 php.ini。你怎么看?这样做是否有任何潜在的安全威胁?
例如,他们可以大量增加内存限制并影响其他用户,但我认为这不会成为问题。
在没有 FTP 访问的情况下很难部署您的网站,对吗?我阅读了很多解释如何创建虚拟用户的 pureftpd 教程。这并不真正适用于我,是吗?我只是在考虑允许用户通过 ftp 登录,将他们 chroot 到他们的主目录,就是这样。还有什么(通过 ftp 禁用 root 访问)?
这是我的主要问题。作为用户,我总是喜欢通过 SSH 连接到我的帐户,只是为了执行一些批处理操作,或者直接在服务器上提取存档,而不必通过 FTP 上传每个单独的文件。但是,我不希望我的用户能够浏览整个文件系统等。我对 SSH 配置不是很熟悉,所以有没有一种方法可以让用户连接并将它们“chroot”到他们的家中?
我已经在调整我的立场,但我真的很想得到这里所有明智大师的意见,关于如何正确地做事,以及如何避免新手错误。我的 VPS 管理界面中有一个易于按下的“操作系统重置”按钮,但在我所有托管网站上看到“H@ked by th3 H4xx00r5”消息后,我不想经常点击它.