我有esxi的专用服务器。 我为esxi添加了额外的用户,并将其密钥添加到/etc/keys/keys-user/authorized_keys
然后我重新启动服务器,密钥文件夹已经消失。 然后我发现我需要复制一些持久性存储中的密钥,然后把命令放在/etc/rc.local.d/local.sh但我已经看到,即使该文件重新启动后重写。 所以我的问题是
UPADTE我已经设置了防火墙规则,只有我的家庭IP可以访问ESXI,没有别的。 现在,以防万一我无法连接,然后我想要的是ssh和禁用防火墙一段时间,可能会更改防火墙规则的新IP,然后重新启用防火墙。 这就是为什么我想要SSH访问。 几天后,我有root帐户被locking,因为有人暴力强制。 所以只是万一我想有额外的用户,我可以ssh到解决问题。 我已经启用了基于ssk密钥的身份validation,但是是公开的。 所以我想限制SSH只有家庭IP,并在紧急情况下,如果我的IP变化,那么我可以重新启动ESXI,以便基于密码的身份validation工作,然后我可以修复防火墙。 我是家庭用户,所以不能在esxi上购买硬件防火墙。
我有pfsene内部机器。 我没有任何公共网站只有我的实验室的东西。 我不想把esxi放在pfsense的后面,因为如果pfsense出了问题,我会被locking,除了重新安装所有东西
根据我的经验,/ /etc/rc.local.d/local.sh实际上是在重新启动时持久的。 可能值得一提的是,该文件仅保存一次,一小时或干净closures期间(请参阅ESXi写入启动磁盘的频率? )。
因此,如果您进行硬复位或reboot ,而不是reboot ,那么更改未保存的原因之一可能是。
您可以通过/sbin/auto-backup.sh文件来查看系统是否保存更改,该文件将文件立即保存到bootbank(请参阅如何在ESXi 4.x / 5.x中保留configuration更改 ,该更改仍适用于v6。 X)。
我的ESXi也在公共networking上。 在/etc/ssh/sshd_config我已经改变了
PermitRootLogin yes
至
PermitRootLogin prohibit-password PubkeyAuthentication yes
这已经降低了根用户被locking为无效密码尝试的机会(因为首先不允许root用户使用密码)。 此外,基于密钥的身份validation被认为比密码身份validation更省钱(如果您保持密钥安全!)。
如果你想完全禁用密码authentication,你也必须设置
UsePAM no PasswordAuthentication no
但是,这些更改是永久性的 (因为/etc/ssh/sshd_config会保存在/sbin/auto-backup.sh )并且是立即的 (如果是sshd,则不会重新启动,因为sshd实际上是由inetd启动的)。 因此,这里没有永久性的变化。
如果您仍想更改防火墙规则,则可以使用内容创build一个文件ssha_from_anywhere.xml
<ConfigRoot> <service id='1000'> <id>sshServer</id> <rule id='0000'> <direction>inbound</direction> <protocol>tcp</protocol> <porttype>dst</porttype> <port>22</port> </rule> <enabled>true</enabled> <required>true</required> </service> </ConfigRoot>
在持久存储器中,并在启动过程中将其复制到/etc/vmware/firewall/ (同样来自/etc/rc.local.d/local.sh )。 然后使用vSphere客户端更改现有的防火墙规则,只允许您的本地地址。
一旦系统重新启动,ssh端口向全世界开放。 然后,您需要login并删除/etc/vmware/firewall/ssha_from_anywhere.xml并重新加载防火墙:
esxcli network firewall refresh
但是, 在这之前 ,您必须调整允许连接到ssh的IP地址。 您可能还想在vSphere客户端中再次执行此操作,或直接在/etc/vmware/firewall/service.xml 。 在前一种情况下(如果您没有禁用vSphere客户端界面)整个过程似乎毫无意义,因为您可以简单地使用vSphere客户端login并更改IP地址。
例如,vSphere Client中所做的更改反映在/etc/vmware/esx.conf文件中
/firewall/services/sshServer/allowedip[0000]/ipstr = "192.168.1.1" /firewall/services/sshServer/allowedip[0001]/ipstr = "192.168.2.0/24"
虽然我知道这个文件保留在重新启动,我不知道如何更改被激活。 也许你可以编辑文件,然后reboot ? 之后,重新启动删除/etc/vmware/firewall/ssha_from_anywhere.xml并重新加载防火墙。
祝你好运!
马丁