在 Linux 中开始使用 SSH

感谢我们生活的互联世界,您不再需要物理访问您的服务器。 您的服务器可以在世界任何地方,您可以从本地计算机连接到它。

为此目的开发了许多协议和工具。 这些包括 远程登录SSH. Telnet 不是首选,因为 安全问题. 另一方面, SSH 是安全连接到远程系统的流行方法。

在本文中,我将介绍一些 Linux 用户必须知道的有用命令和工具,以通过 ssh 使用远程系统及其资源。

请注意,您在个人本地 Linux 系统上运行的大多数命令也应该在远程系统上可用(例如 ls、cat、cd 命令等)。 但是运行它们取决于分配给远程用户的权限,就像使用任何 Linux/UNIX 系统一样。

什么是 SSH?

SSH 或安全外壳是一种网络协议,用于通过网络安全地运行网络服务。 它使用加密标准来安全地连接和登录到远程系统。

它将公钥存储在远程系统中,将私钥存储在客户端系统中。 这些密钥在数学上是成对产生的。 当两者都应用于双变量函数时,它将产生一个值,该值将用于检查该对是有效还是无效。 这是可能的最简单的解释。 要了解更多信息,请参阅 这一页.

使用 SSH 的示例

让我们开始设置 SSH 和非常酷的用例。

生成 ssh 密钥

GitHub 和 Heroku 等网站要求您提供 SSH 公钥,这样您就可以在不输入密码的情况下推送/部署代码并且您没有这样的密钥对? 不用担心。 您可以使用以下命令生成这样的 ssh 密钥对:

ssh-keygen

它将提示输入密钥位置(将保存密钥的位置)和密码(即密码)。 密码是可选的。

默认情况下,ssh 密钥存储在主目录下的 .ssh 目录中。

如果关键位置是 DIR_PATH/keypairforssh,会有两个文件

  1. 目录路径/密钥对forssh
  2. 目录路径/keypairforssh.pub

1 是您不得与任何人共享的私钥文件
2 是可以与远程系统(通过其他受信任的通信,如邮件、物理传输和其他安全通信工具)和服务(如 Github、Heroku)共享的公钥文件,用于各自的用例。 请务必彻底检查您要连接的服务。

将私钥添加到密钥代理

创建密钥对时,它只是作为一组两个文件存在。 为了连接到远程系统,它必须使用私钥。 所以应该告知这 DIR_PATH/keypairforssh 是私钥。

这是由

ssh-add keylocation

在我们的例子中,它是

ssh-add DIR_PATH/keypairforssh

通过 SSH 连接到远程主机

如果私钥和公钥在正确的位置,那么您可以通过这种方式连接到系统。

ssh [username]@hostname

其中,用户名应该是远程系统上的有效用户,主机名是 DNS 可识别的或 IP 地址,以便 ssh 可以联系远程系统并请求连接。

为了 example连接到名为“linux手册” 用用户名“看到的“ , 采用:

ssh [email protected] 

如前所述,上述命令使用本地系统上的私钥和远程系统上的公钥,并验证它们是有效的对。 当且仅当密钥对有效并生成一个 shell(类型取决于远程系统上用户的配置)供您使用时,它才允许登录。 您可以像使用本地系统一样使用远程系统。

假设私钥没有添加到密钥代理中,那么您可以如下进行 ssh 登录。

ssh -i /path/to/private/key/file [email protected]

这种密钥对检查通常进行一次。 SSH 将远程主机添加到授权主机列表中以供将来使用。

在客户端和远程系统之间复制文件

scp 命令是建立在 ssh 之上的工具。 它允许用户将文件和目录从远程复制到客户端,反之亦然。

由于 scp 命令使用 ssh,它需要与 ssh 相同的要求。 这意味着公钥应该在远程系统上,而私钥应该在本地系统上。

scp DIR_PATH_1 DIR_PATH_2

在哪里 DIR_PATH_1/DIR_PATH_2 都是远程或本地文件系统路径的路径。 为了 example, 转移 ~/Documents/documentForLinux.txt 到 ‘linux手册/home/seeni/文档 目录

scp ~/Documents/documentForLinux.txt [email protected]:~/Documents

要反向复制同一文件,

scp  [email protected]:~/Documents/documentForLinux.txt ~/Documents

挂载远程文件系统或目录

要将远程系统目录挂载到客户端, sshfs 是工具
为这个特定目的而开发的。

sshfs [email protected]:/path/to/remote/folder /path/to/local/mount/point

上面的命令非常直观。 这里,“name”是远程系统接受的用户名,server 是远程“主机名”。

在某些系统中, sshfs 可能不可用,如果需要,请安装它。

提示:nohup 命令允许您在断开 SSH 连接后继续运行命令。

结论

恭喜你,你做到了最后。 我希望这篇文章涵盖了所有与 ssh 相关的基本命令和工具。 这些工具足以开始使用 ssh 进行远程计算。

在相关文章中,您可以了解 tmate。 它是一个允许您通过 SSH 共享终端会话的工具。

希望,你觉得这篇文章有用。 如果您有任何建议,请随时将它们放在下面的评论部分。