怎样在Linux中使用Telnet进行远程命令执行

记得有一次,我在一个老旧的服务器上,因为某些原因需要远程登录去修改配置文件。
我手头没有SSH客户端,就随手打开了终端,准备用Telnet。
输入了服务器的IP和端口,屏幕上显示着连接成功的提示,然后我输入了用户名和密码,按回车键,屏幕上没有任何反应,我以为出问题了,又输入了一遍,还是没反应。
突然,我意识到,Telnet的密码输入是不显示的,我这才意识到之前一直在按回车键,根本没输入密码。
那一刻,我突然想到,如果是在不安全的网络环境下,我的密码很容易被截获,心里顿时有点紧张。

如何在Linux中执行远程命令 Linux ssh命令安全连接指南

哎,说起来这SSH远程命令执行,在我混迹问答论坛这1 0年,确实是Linux系统管理中绕不开的话题。
咱们来聊聊这其中的门道。

先说最基础的,SSH命令那肯定得熟练。
你看,最基本的语法就是ssh 用户名@[远程主机IP或域名] '[要执行的命令]',比如查看远程服务器日志目录内容,就简单写成ssh user@1 9 2 .1 6 8 .1 .1 00 'ls -l /var/log'。

然后是多命令执行,这个实用,用分号或者逻辑与&&连接。
记得用&&的时候,得保证前一条命令成功才能执行下一条。
比如,先切换目录再创建目录和文件,写成ssh user@1 9 2 .1 6 8 .1 .1 00 'cd /tmp && mkdir my_dir && echo "Hello" > my_dir/test.txt'。

再说说密钥认证,这是安全的核心。
基于非对称加密,本地生成一对密钥,私钥自己藏着,公钥上传到服务器。
服务器用公钥验证你,私钥不用传,这样就安全多了。
操作步骤,先生成密钥对,用ssh-keygen -t rsa -b 4 09 6 生成id_rsa(私钥)和id_rsa.pub(公钥),然后上传公钥到服务器。
推荐用ssh-copy-id,简单快捷。
或者手动上传,就是cat ~/.ssh/id_rsa.pub | ssh user@remote_host_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 7 00 ~/.ssh && chmod 6 00 ~/.ssh/authorized_keys"。

服务器安全优化也很关键。
比如,改个默认端口,防止被人扫描。
修改/etc/ssh/sshd_config里的Port为高位端口,然后重启服务。
再比如,限制登录用户,只允许特定的用户登录。

然后是高级技巧。
比如,处理环境变量问题,有时候得用绝对路径执行命令,或者临时设置环境变量。
传递本地变量的时候,记得双引号包裹,转义内部引号。
如果需要交互式操作,比如sudo提权,就得加上-t选项。

最后,安全实践总结,强制密钥认证,禁用密码登录和Root远程访问,改默认端口,限制用户白名单,部署Fail2 Ban监控暴力破解,配置防火墙,处理环境变量与交互需求,定期审计SSH日志,这些都能有效降低风险。

这事儿,得一步步来,安全永远是第一位的。