通过SSH安全地远程编辑root可访问的文件


8

根据安全性最佳做法,不应允许使用密码或密钥通过SSH进行root登录。相反,应该使用sudo。

但是,如果要使用SSH(SFTP)远程编辑服务器配置文件(例如/ etc中的文件)(Apache,Cron,您为它命名),应该怎么做?

  • 通过SFTP进行根可访问的文件远程编辑是否可以与安全性最佳做法兼容

  • 如何设置文件权限,用户组以及如何遵循安全最佳实践

目前,我使用受密码保护的公钥身份验证以root用户身份登录,但是我不确定是否可以做一些更安全的操作,以便可以完全禁用面向SSH的root用户登录。

服务器是Ubuntu 12.04。


那么您的客户端操作系统是什么?请更具体地回答您的问题!
SPRBRN 2013年

我看不到为什么直接基于密钥的根登录应该比sudo安全。
jpc

Answers:


2

如果确实需要远程编辑,一个简单的解决方案可能是将/ etc(或它的一部分)的副本保留在另一个本地用户上,并设置系统以将更改从那里复制到真实的/ etc。更好的方法是使用git-或svn或您选择的任何其他版本控制系统-并且您还将拥有其他更改日志。

使用OpenSSH的相同功能(匹配组等),也可以在SFTP上设置chroot并禁用特定帐户的正常登录-或仅从指定的IP地址限制该用户的登录。对此,请访问http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/

但是,请记住,/ etc上的大多数配置文件都可以通过编辑它们来获得root用户访问权限。我已经看到使用svn / git配置的系统在接受文件更改之前先检查配置文件的有效性-可以用于仅接受安全配置格式。

无论如何,对于这个问题有很多不同的解决方案。这只是一种方法。


1

我不明白为什么通过SSH对这些文件进行sudo编辑不是一件好事。我一直在做,例如

sudo nano /etc/apache2/sites-available/default

如果要使用GUI编辑器,则可以使用X隧道。您必须在ssh conf文件中允许它,然后-X在ssh命令行上使用该选项。

ssh -X server.example.com

然后,您可以使用GUI编辑器编辑文件:

sudo gedit /etc/apache2/sites-available/default

正如我所指,这是远程编辑。您正在服务器上运行gedit,而不是通过SSH / SFTP编辑文件的本地文本编辑器
Mikko Ohtamaa 2013年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.