连接到生产服务器 SSH 登录时警告用户

连接到生产服务器 SSH 登录时警告用户

我有 3 个运行 ubuntu 14.4 的 aws 环境。我是 DevOps,所以我对每个服务器都有 root 访问权限。有一次,由于 Ctrl+R 和实例名称相似,我登录到了实时实例而不是暂存实例,并删除了重要数据。幸运的是,我有备份,所以我能够立即恢复。

我希望以后能避免这种情况。有没有办法让我在尝试登录实时系统时得到是/否提示?我知道我可以使用横幅,但客户端检查效果最好。

我同意任何其他建议,以确保每当我连接到实时系统时都会收到警告。

答案1

实现此目的的一个有趣方法是拥有 2 个 ssh 密钥,一个用于生产服务器,一个用于非生产服务器。

确保生产版本使用以下密码加密:不是已保存。如果愿意,您可以加密另一个,但如果不加密,则会更清楚地表明您正在访问生产服务器,因为您必须先解密密钥,然后才能使用它。

您可以在较新版本的 SSH 中使用的另一个“技巧”是要求两种形式的身份验证,即密钥和密码 - 仅为生产服务器启用此功能。

这是在 sshd.conf 中完成的

AuthenticationMethods "publickey,password" "publickey,keyboard-interactive"

我仍然会采纳 Drako 的建议,更改提示颜色——我在我管理的服务器上这样做,以便让我一眼就能知道我以谁的身份登录,以及我在哪个服务器上。

答案2

以防万一,这里有彩色提示的示例:在 bashrc 末尾的某处尝试这个(它在我的 rhel 上运行,但也可以运行在 ubuntu 上(没有任何可以测试的)):

RED="\[\033[40;0;31m\]"
GREEN="\[\033[40;0;32m\]"
CLEAR="\[\033[0m\]"
if [ $(id -u) -eq 0 ];
then
    PS1="$RED\u@\h: \W \$$CLEAR "
else
    PS1="$GREEN\u@\h: \W \$$CLEAR "
fi

这将区分生产提示:红色表示 root 用户,绿色表示用户

相关内容