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

说实话,这些年来我在使用SSH远程管理Linux服务器时遇到的漏洞比通过配置文件遇到的漏洞还要多。
好在我找到了一些办法,今天就给大家讲一下我压底盒的实践经验。

我们先来说说基本规则。
记得刚入行的时候,即使是最简单的“ssh user@ip”这样的命令也很容易出错。
有趣的是,一旦我向后使用逗号字符,这会导致命令的所有参数转义,并且系统返回给我带有插入字符的正确文件。
所以现在我一般都会嵌套双逗号,比如这里 ssh user@1 9 2 .1 6 8 .1 .1 00 '"cd /tmp && mkdir my_dir && echo 'Hello' > my_dir/test.txt",这样即使参数中有空格或者逗号也没有问题。
几个命令的执行非常重要。
经常使用 && 将它们串在一起,如 ssh user@ip 'sudo update apt && restart',这样只有指定命令成功后才执行重启,避免系统卡在更新状态。

当到达验证密钥时,这是主要优先级。
我的一个客户的服务器被黑客攻击,我发现密码被暴力破解。
然后我使用了身份验证密钥,它再也没有被黑客攻击过。
我通常使用 ssh-keygen -b 4 09 6 -N 来自动管理它。
我不必输入它。
我更喜欢使用 ssh-copy-id。
我过去必须手动将 ssh 版本添加到线路中,这是一场灾难。
默认端口是2 2 2 2 这个端口,然后创建最窄的。
但您知道有些脚本默认可以扫描。
在这种情况下,我有一个服务器可以执行此操作,但整个过程被卡住了,因为脚本没有更改。
以前,我在使用 SSH 规则执行 sudo 命令时,经常遇到终端代码不足并立即崩溃的情况。
后来发现通过添加-t模块,伪终端就可以正常工作了。
另一个很酷的操作是使用文档来传递局部变量,就像这样 ssh user@host 'cat << EOF> 本地变量:$LOCAL_VAR EOF',这样就可以在远程环境中正确解析变量,避免嵌套套管的噩梦。

最后说一下血泪的教训。
有一次我忘记禁用远程root登录,小鬼就利用了脚本,几乎把整个系统都发给了他。
所以现在配置SSH时,首先要做的就是强制密钥认证,然后禁用root帐户和远程访问。
这是最可靠的保护方式。
我还定期检查所有 SSH。
我的服务器上有一个有脚本的孩子,他每天晚上九点都会秘密检查日志。
尽管没有恶意,但我发现该IP后立即被封锁。

说实话,Linux SSH用得好的话可以省去很多麻烦,但是到了配置问题的时候,哭都来不及了。
因此,安全的区域根本不应该被覆盖,而被测试的区域则应该被覆盖几次。

如何在 Chrome OS 中使用 SSH 管理工具

要在ChromeOS上使用SSH,您必须首先打开Linux环境。
直接进入步骤。

1 . Linux环境必须是开放的 1 .启动Linux子系统 设置-高级-开发者模式-Linux开发环境,点击启用。
系统自动安装。
2 、测试环境 在终端中运行 cat /etc/os-release 看看是 Debian 还是 Ubuntu。

2 添加 SSH 连接 1 .打开终端 启动器搜索终端打开。

2 创建 SSH 条目 从终端菜单中选择“文件”-“添加 SSH 连接”。

3 配置信息 在命令栏中输入: ssh 用户名@服务器 USERNAME 是远程用户名,例如 root。
SERVER 是 IP 或域名。
不要碰 SSH 中继服务器,将其留空。
单击“保存”,这将出现在 SSH 列表中。

3 连接到远程服务器 1 . 选择连接 单击SSH列表中保存的服务器。

2 验证您的指纹 第一次连接需要指纹以确保它们与远程服务器匹配。
您可以使用 ssh-keyscan SERVER 提前获取指纹。
确认无误后,单击“Accept”并按“Enter”。

3 输入您的密码或密钥 对于密码验证,请输入您的密码。
对于密钥认证,需要提前将公钥添加到远程~/.ssh/authorized_keys文件中。

4 高级用法 1 .配置文件管道连接 手动编辑~/.ssh/config,例如: 托管我的服务器 主机名 1 9 2 .1 6 8 .1 .1 00 用户管理员 端口 2 2 2 2 保存后直接ssh myserver即可。

2 端口转发 使用-L参数切换到本地端口,例如: ssh -L 8 08 0:localhost:8 0 用户@服务器
3 .蹦床机 要使用ProxyJump,需要OpenSSH7 .3 +。

4 复制文件 使用 scp,例如: scp local/path/file.txt user@server:/remote/path/
5 .注意事项 1 . 网络限制 ChromeOS 可能无法在中国连接,需要 VPN 或公司网络。

2 替代方案 如果无法打开 Linux 环境,请安装 SSH 客户端,例如 SecureShellApp。

3 系统兼容性 国内使用的是FydeOS,内置Linux虚拟机,支持SSH,适配硬件。

首先,你可以亲自看看。

如何 SSH 到 Linux 服务器里的特定目录及执行命令?

哇,这个通过 SSH 连接 Linux 服务器来执行命令真是太方便了。
听我给你讲,这个方法再简单不过了。

首先,如果你想直接进入服务器上的特定目录,只需使用 ssh -t 命令即可。
格式为:ssh -t 用户名@IP-服务器 'cd/目标/目录路径 && exec$SHELL'。
这里的 -t 选项与分配一个假终端相同,这样就不会发生错误,因为输入不是终端。

例如要进入服务器1 9 2 .1 6 8 .0.1 1 6 的/home/pi/tests目录,则需要写:ssh-tpi@1 9 2 .1 6 8 .0.1 1 6 'cd /home/pi/tests && execbash'。

那么,如果你想在进入目录后立即执行多个命令,例如查看目录内容、运行脚本,那么可以使用 & 和 & 将它们用单引号连接起来。
例如:ssh-tpi@1 9 2 .1 6 8 .0.1 1 6 'cd/home/pi/tests && ls-al && execbash'。

执行的结果就是你所看到的。
例如,我在这里看到目录中的文件和文件夹列表。

如果您想每次登录时都进入特定目录,可以更改.bashrc文件。
使用 vim 编辑 ~/.bashrc 并将以下行添加到文件末尾:cd/target/目录路径>/dev/null。
然后您可以使用 source~/.bashrc 或直接执行 .~/.bashrc 以使更改生效。

不过,这种方法有一个局限性:设置固定目录后,如果要更改目录,则必须再次更改文件。

还有一些其他事情需要考虑,例如 Shell 兼容性。
如果默认 shell 不是 bash,则需要将 exec$SHELL 替换为实际 shell。
您可以使用 echo$SHELL 来检查当前的 shell 类型。

此外,如果某个命令失败,后续命令将不会再次执行。
您需要确保命令可靠或添加错误处理逻辑。

最后,安全也很重要。
不要直接在命令中使用密码等敏感信息。
最好使用 SSH 密钥身份验证。

无论如何,我发现使用 ssh-t 结合复合命令的方法既灵活又高效。
这绝对是一个好方法大多数自动化场景。