使用这些 Linux 命令有效管理远程 SSH 连接使用这些 Linux 命令有效管理远程 SSH 连接使用这些 Linux 命令有效管理远程 SSH 连接使用这些 Linux 命令有效管理远程 SSH 连接
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

使用这些 Linux 命令有效管理远程 SSH 连接

了解如何使用这些 SSH 和 Linux 命令来节省管理远程服务器的时间。

如果您运行一台或多台远程服务器,您通常会整天花时间不断登录。

但事情不一定非得这样。现在是您学习如何仅使用别名通过 SSH 高效登录、传输单个文件或目录、执行远程 SSH 命令以及轻松将远程服务器挂载到本地目录的时候了。

SSH 配置文件

位于 ~/.ssh/config 的 SSH 配置文件可以节省大量时间。首先创建一个目录来存储用于登录服务器的所有 SSH 密钥,命令如下:

mkdir -m 0600 $HOME/.ssh_keys

现在将所有 SSH 密钥文件复制到此目录中(例如 clienta.pem、clientb.pem 等)。接下来,通过运行以下命令在文本编辑器中打开 ~/.ssh/config 文件:

nano ~/.ssh/config

下面是一个将与远程服务器建立 SSH 连接的示例条目:

host clienta
    hostname 124.58.2276.80
    user ubuntu
    IdentityFile ~/.ssh_keys/clienta.pem

将上面的几行添加到 ~/.ssh/config 文件中,每个服务器对应一个您想要的服务器。然后按 Ctrl+X 保存并关闭文件并按照提示操作。保存后,您现在可以使用简单的命令从终端内的任何目录通过 SSH 登录到任何服务器:

ssh clienta

这将立即使用您在 ~/.ssh/config 文件中指定的 clienta 主机下的信息登录到服务器。

使用 scp/rcp 传输文件

无需创建持久登录会话,您就可以使用 scp 命令轻松将单个文件或目录上传到远程服务器,例如:

scp report.pdf clienta:~/

上面的命令会将report.pdf文件从您的本地计算机上传到您在上一节中定义的clienta服务器的主目录。您可以上传到主目录以外的目录,例如:

scp about.html clienta:/home/clienta/public_html

上面的代码会将 about.html 文件上传到远程 clienta 服务器上的 /home/client/public_html 目录。还可以使用 -r 选项上传整个目录,例如:

scp -r Documents clienta:~/docs

这会将整个 ~/Documents 目录从本地计算机上传到远程服务器的 ~/docs 目录。

下载文件

同样,您可以使用 rcp 命令将文件或目录下载到本地计算机,而无需创建持久登录会话,例如:

rcp clienta:~/public_html/about.html myproject/about.html

上面将从远程 clienta 服务器下载 public_html/about.html 文件,并将其放入 projects/about.html 文件中您的本地计算机。

执行远程 SSH 命令

另一个快速提示是您可以在远程服务器上执行单个 Linux 命令,而无需持久登录会话,例如:

ssh clienta ls

上面的代码将在远程 clienta> 服务器上执行 ls 命令,并列出所有文件/目录,而无需让您保持登录到服务器的状态。例如,如果您想重新启动服务器,您可以使用:

ssh clienta /sbin/shutdown -rf now

本地 /bin 目录

让我们对此进行扩展,通过创建用户帐户本地的 /bin/ 目录来轻松安装到远程服务器。在计算机上打开终端,然后运行以下命令创建 /bin/ 目录:

mkdir -m 0755 ~/bin

接下来,使用以下命令在文本编辑器中打开 ~/.profile 文件:

nano $HOME/.profile

向下滚动到文件的最底部,并将以下行复制到剪贴板,然后在终端中按 Ctrl+Shift+V 添加以下行:

if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

按 Ctrl+X 保存并关闭文件,然后按照提示操作。这将保存 .profile 文件,该文件将检查新创建的本地 /bin/ 目录中是否有您尝试运行的任何命令。

添加远程挂载命令

首先,使用以下命令检查您的计算机上是否安装了 sshfs:

sshfs --version

如果这会打印出 sshfs 的当前版本,那么一切就都准备好了。否则,如果您收到“找不到命令”错误,您可以使用以下命令安装sshfs:

sudo apt-get -y install sshfs

现在创建一个 /mnt/ 目录,其中包含远程服务器的所有安装目录。在终端中运行以下命令:

mkdir -m 0755 ~/mnt
mkdir -m 0755 ~/mnt/clienta
mkdir -m 0755 ~/mnt/clientb

继续为您可能挂载到的每台远程服务器创建一个子目录。接下来,让我们创建要运行的 shell 命令,例如,对于 clienta 服务器,通过在终端中运行以下命令来打开一个文件:

nano ~/bin/mount_clienta

根据需要使用正确的服务器信息修改以下行,然后按 Ctrl+Shift+V 将其复制并粘贴到终端内的空白文本编辑器中:

#!/bin/bash
sshfs -o IdentityFile=~/.ssh_keys/clienta.pem ubuntu@192.168.0.24:/var/www ~/mnt/clienta

按 Ctrl+X 保存并关闭文件,然后按照提示关闭文件。最后,通过运行以下命令更改文件的权限,使其可执行:

chmod 0755 ~/bin/mount_clienta

现在,任何时候您需要挂载到 clienta 的远程服务器以将文件传输到/从它传输文件时,您都可以从终端内的任何目录简单地运行以下命令:

mount_clienta

本地计算机上位于 ~/mnt/clienta 的目录现在将安装到远程服务器的 /var/www 目录。您可以像复制任何本地目录一样开始在该目录中复制文件,并且必要的操作将在远程服务器上进行。

更高效的连接管理

希望上述提示有助于简化并提高远程服务器连接的管理效率。在本文中,您已经了解了 ~/.ssh/config 文件的所有内容,该文件允许您仅使用别名通过 SSH 登录、传输单个文件/目录、执行远程 SSH 命令以及如何轻松挂载远程服务器的本地目录。

©2015-2025 艾丽卡 support@alaica.com