我正在尝试linux ssh。在终端中,我尝试连接我正在使用的同一台 Linux 机器,并且它已连接!就像用您的手机拨打同一部电话一样!但这怎么可能呢?
以下是我输入的示例终端命令:
alpha@alpha:~$ ssh alpha@<my IP address>
alpha@<my IP address>'s password: <my password>
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-42-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
* Canonical Livepatch is available for installation.
- Reduce system reboots and improve kernel security. Activate at:
https://ubuntu.com/livepatch
0 packages can be updated.
0 updates are security updates.
Last login: Mon Dec 10 15:31:35 2018 from <my IP address>
Run Code Online (Sandbox Code Playgroud)
上面的终端与我使用 ssh 的 Linux 机器的 IP 地址和上面的终端输出相同。我还注意到,我可以在嵌套连接中使用 ssh 与同一台机器连接,并且我尝试了 5 级深度!
出于好奇,我问这个问题是为了知道这是正确的吗?linux 不能检测到它自言自语吗?
在 Linux 中,您所做的每个连接通常最后都在 bash 上运行,对于其他 UNIX,则使用其他 shell(以及其他初始化脚本)
因此,您可以使用当前的 shell 初始化脚本,通过读取ssh 客户端会话生成的环境变量来配置 ssh 客户端的连接行为。
例如,在 /etc/bash.bashrc 中,类似的内容可能会阻止您连接到自己。
CNIP=$(echo $SSH_CONNECTION | cut -d' ' -f1)
RNIP=$(echo $SSH_CONNECTION | cut -d' ' -f3)
if [ "$CNIP" == "$RNIP" ] && [ "$CNIP" != "" ] ; then
echo "We are connecting to ourself, exiting.."
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
所以在 Linux 中,用这个你可能会阻止 ssh 允许服务器 ip 本身的连接。
Linux/Unix 是非常可定制的,它可能允许你做一切事情,包括用无限循环破坏你的系统,如果你真的想要的话。因此,如果你想防止某些事情发生,你需要更加明确。
另一方面,我没有看到这种行为有任何问题,我无法确定你为什么担心它,但如果你真的想出于任何原因阻止,这里可能有一个解决方案。
| 归档时间: |
|
| 查看次数: |
14970 次 |
| 最近记录: |