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

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

但它不必是这样的。 是时候学习如何仅使用别名通过 SSH 有效登录、传输单个文件或目录、执行远程 SSH 命令以及轻松地将远程服务器挂载到本地目录。

SSH 配置文件

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

mkdir -m 0600 $HOME/.ssh_keys

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

nano ~/.ssh/config

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

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

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

ssh clienta

这将立即使用以下信息将您登录到服务器 客户 您在 ~/.ssh/config 文件。

使用 Scp / Rcp 传输文件

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

scp report.pdf clienta:~/

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

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

以上将about.html文件上传到 /home/client/public_html 远程目录 客户 服务器。 也可以使用上传整个目录 -r 选项,例如:

scp -r Documents clienta:~/docs

这将上传整个 ~/文件 目录从本地计算机到 〜/文档 远程服务器的目录。

下载文件

同样,您可以将文件或目录下载到本地计算机,而无需使用 rcp 命令如:

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

以上将下载 public_html/about.html 远程文件 客户 服务器,并将其放入 项目/about.html 本地计算机上的文件。

执行远程 SSH 命令

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

ssh clienta ls

以上将执行 ls 远程客户端>服务器上的命令,并列出所有文件/目录,而无需让您登录到服务器。 为了 example,如果您想重新启动服务器,您可以使用:

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

Save 和 close 文件按 Ctrl+X,然后按照提示进行操作。 这将保存 。轮廓 文件,它将检查新创建的本地 /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 命令,并为 example, 为了 客户 服务器通过在终端中运行以下命令打开文件:

nano ~/bin/mount_clienta

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

#!/bin/bash
sshfs -o IdentityFile=~/.ssh_keys/clienta.pem [email protected]:/var/www ~/mnt/clienta

Save 和 close 文件按 Ctrl+X,并按照提示进行 close 文件。 最后,通过运行以下命令更改文件的权限,使其可执行:

chmod 0755 ~/bin/mount_clienta

现在任何时候你需要安装到 客户的 远程服务器从终端中的任何目录向/从它传输文件,您只需运行以下命令:

mount_clienta

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

更高效的连接管理

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