在Linux中使用ssh入门

时间:2020-03-05 15:29:43  来源:igfitidea点击:

什么是ssh?

SSH或者Secure Shell是一种用于在网络上安全地操作网络服务的网络协议。
它使用加密标准来安全地连接和登录远程系统。

它存储在客户端系统中的远程系统和私钥中的公钥。
这些键在数学上作为一对生产。
当两者都应用于双变量函数时,它将导致一个值,该值将用于检查该货币对是否有效或者无效。
这是最简单的解释。
要了解更多信息,请参阅此页面。

使用ssh的例子

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

生成SSH键

GitHub和Heroku等正在要求SSH公钥,以便我们可以在不输入密码的情况下推送/部署代码,并且我们没有这样的键对?
别担心。
我们可以使用此命令生成此类SSH密钥对:

ssh-keygen

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

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

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

  • dir_path/keypairforssh.
  • dir_path/keypairforssh.pub.

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

将私钥添加到Key-Agent

创建密钥对时,它只存在于两个文件集中。
为了连接到远程系统,它必须使用私钥。
所以人们应该通知这个dir_path/keypairforssh是私钥。

这是由

ssh-add keylocation

完成。

在我们的情况下,它是

ssh-add DIR_PATH/keypairforssh

通过ssh连接到远程主机

如果私钥和公钥位于正确的位置,则可以以这种方式连接到系统。

ssh [username]@hostname

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

例如,要连接到名为"OniToad"的系统,使用用户名"seati",使用:

ssh Hyman@theitroad

如前所述,上面的命令使用远程系统上本地系统和公钥上的私钥,并验证这些是有效对的。
它允许登录如果键对有效并仅产生shell(类型取决于远程系统上用户的配置),则才能使用。
我们可以使用本地系统使用远程系统。

假设私钥未添加到密钥代理,然后我们可以执行以下操作。

ssh -i /path/to/private/key/file Hyman@theitroad

这种键对的检查通常是一次完成。
SSH将远程主机添加到授权主机列表中,以备将来使用情况。

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

SCP命令是构建在SSH顶部的工具。

它允许用户将文件和目录复制到远程到客户端,反之亦然。

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

scp DIR_PATH_1 DIR_PATH_2

Dir_path_1/dir_path_2的两个是远程或者本地文件系统路径的路径。
例如,将~/document/dovereforlinux.txt传输到'oniToroad's/home/seeti/documents目录

scp ~/Documents/documentForLinux.txt Hyman@theitroad:~/Documents

要以反向复制相同的文件,

scp  Hyman@theitroad:~/Documents/documentForLinux.txt ~/Documents

安装远程文件系统或者目录

要将远程系统目录安装到客户端,SSHFS是为此特定目的开发的工具。

sshfs Hyman@theitroad:/path/to/remote/folder /path/to/local/mount/point

以上命令完全直观。
其中'name'是远程系统上接受的用户名,服务器是远程'hostname'。

在某些系统中,可能无法使用SSHF,如果需要,请安装它。

Tip: The nohup command allows you to keep on running commands even after you disconnect your SSH connection.