📜  SSH Linux

📅  最后修改于: 2020-12-09 05:36:27             🧑  作者: Mango

SSH Linux | Linux ssh命令

在Linux中, ssh是一个协议,代表安全壳安全套接字壳。安全外壳对于连接到远程服务器时的安全性很有用。 ssh命令使用ssh协议(这是一种安全协议),因为客户端和主机之间的数据传输以加密形式进行。它通过客户端将输入传输到主机,并返回主机传输的输出。它通过TCP / IP端口22执行。

加密的连接还用于在Linux服务器上运行命令,端口转发隧道等。

有许多SSH客户端可用于商业版本和免费版本。 OpenSSH是其使用最广泛的客户端。它适用于所有最常用的平台,例如Windows,Linux,macOS,OpenBSD等。

句法:

ssh user_name@host(IP/Domain_name)

ssh命令的组件

ssh命令由三种不同类型的组件组成:

  • ssh命令:它指示机器与主机系统建立安全的加密连接。
  • 用户名:用户名是主机正在访问的Linux用户的名称。
  • 主机:主机是用户正在访问的机器,例如计算机或路由器。域名或IP地址也称为主机。

SSH如何工作?

要建立SSH连接,我们需要两个主要组件:客户端和主机,可以是服务器,域名,IP地址等。另外,我们要求ssh客户端与另一台计算机或服务器连接。客户端使用指定的主机信息建立连接;如果提供的凭据经过验证,它将建立加密连接。

服务器(主机)包含一个SSH进程,该进程准备通过TCP / IP端口请求客户端连接。客户端启动连接后,主机将以必要的信息进行响应并交换凭据。

如果提供的信息经过验证,则SSH协议将为可用环境建立新连接。

SSH服务器和SSH客户端通信的默认SSH协议版本为版本2。

在Linux(Ubuntu)上安装OpenSSH客户端

OpenSSH客户端是系统的连接工具,用于通过ssh协议连接两个系统。它也称为ssh,可以从Linux终端中调用。该客户端软件包包含其他SSH实用程序,例如sftp,scp和ssh,默认情况下使用ssh命令安装。它使用这些ssh实用程序执行远程操作。

大多数Linux发行版都预装了OpenSSH客户端。如果任何Linux系统没有ssh客户端,我们可以使用软件包管理器手动安装它。

要安装OpenSSH客户端,请执行以下命令:

sudo apt update

上面的sudo命令将更新Linux系统的软件包。考虑下面的输出快照:

更新Linux系统后,执行以下命令以安装OpenSSH客户端:

sudo apt install OpenSSH-client

上面的命令将安装OpenSSH客户端的最新软件包。考虑以下输出:

从上面的输出中可以看到,一个守护进程正在运行以安装OpenSSH客户端。与我们的机器一样,OpenSSH客户端已经安装,因此显示了消息“ openssh-client已经是最新版本”。

注意:默认情况下,macOS带有Openssh客户端。

在Linux(Ubuntu)上安装OpenSSH服务器

要建立SSH连接,我们需要在计算机中拥有SSH软件的服务器端部分。

要检查服务器的安装状态,请打开终端并执行以下命令:

ssh localhost

如果我们的机器没有OpenSSH客户端的服务器工具包,那么它将显示如下输出:

在上述情况下,我们必须安装OpenSSH服务器。

要安装SSH服务器,请执行以下命令:

sudo apt-get install openssh-server ii

上面的命令将提示您输入系统管理密码,键入密码,然后按Enter键开始安装过程。接下来,它将确认安装类型“ y”键,然后按Enter键。考虑以下输出:

确认安装后,守护进程将开始并在您的计算机上安装OpenSSH服务器。

要验证安装,请执行以下命令:

sudo service ssh status

上面的命令将显示安装状态。如果安装成功,它将显示如下输出:

还有另一种通过ssh localhost命令测试安装的方法:

ssh localhost

上面的命令将验证连接类型“是”以继续。考虑以下输出:

现在,我们已在计算机上成功安装了OpenSSH服务器。

SSH密钥生成

要与主机客户端建立连接,我们需要用于加密连接的特定密钥。通过ssh键登录到远程主机比使用密码更安全。登录主机后,只有将这些命令直接写入主机时,计算机命令才有效。

要生成ssh密钥,请执行以下命令:

ssh-keygen

上面的命令将生成用于创建到主机系统的连接的公钥和私钥。考虑以下输出:

从上面的输出中我们可以看到,已经生成了ssh密钥。 ssh-keygen命令创建两个文件, key @ sshkey@ssh.pub,分别包含私钥和公钥。

为了安全起见,建议隐藏私钥,然后将公钥复制到远程主机。将此密钥复制到远程主机后,我们可以使用SSH密钥而不是密码来建立连接。

SSH协议技术

与其他协议(例如telnet)相比,SSH协议更加安全,并且加密技术比其他协议还不错。 SSH使用三种主要的加密技术。它们如下:

  • 散列:散列是一种身份验证技术,用于确保接收到的数据是否来自真实的发件人且未更改。它使用哈希函数从接收到的数据生成哈希码。但是,无法从哈希值重新生成数据。此哈希值在发送者和接收者的两端均已验证。如果匹配,则对数据进行身份验证。
  • 对称加密:此技术可生成用于加密和解密的单个密钥。生成的密钥分布在主机和客户端之间,并创建安全连接。这是最基本的加密技术。当数据在同一台计算机上进行加密和解密时,它可以发挥最佳性能。
  • 非对称加密:非对称加密技术被认为比其他技术更安全,因为它使用ssh密钥(公共和私有密钥)进行加密。公钥分发给其他计算机以创建安全连接,而私钥仅由客户端计算机使用。安全连接由公用密钥和专用密钥建立。

SSH命令

客户端ssh具有ssh命令的许多功能,例如,创建密钥,配置密钥,打开SSH服务器,为单点登录持有密钥,文件传输客户端等等。一些最有用的ssh命令如下:

  • ssh-keygen:用于创建用于建立连接和公共密钥认证的密钥对。
  • ssh-copy-id:用于将公钥配置为服务器上的有效用户。
  • ssh-agent:用于创建代理以保存用于单点登录的私钥。
  • ssh-add:这是一个向代理添加密钥的工具。
  • scp:这是一个文件传输客户端,提供了类似于RCP的命令行界面。
  • sftp:这是一个文件传输命令,提供类似FTP的命令行界面。
  • sshd:这是用于Linux系统的OpenSSH服务器。

选项:有许多命令行选项可用于指定SSH输出的不同规范。一些有用的选项如下:

  • -c:用于为非IN数据指定查询类。
  • -C:用于比较权威名称服务器上的SOA记录。
  • -d:此选项被视为等效于-v。
  • -i:用于IP6.INT反向查找。
  • -l:用于使用AXFR列出域中的所有主机。
  • -m:此选项设置内存调试标志,例如trace | record | usage。
  • -N:用于更改根查找之前允许的点数。
  • -r:用于禁用递归处理。
  • -R:指定UDP数据包的重试次数。
  • -s:用于SERVFAIL响应应停止查询。
  • -t:用于指定查询类型。
  • -T:用于启用TCP / IP模型。
  • -v:用于详细输出。
  • -V:用于print版本号并退出。
  • -w:用于指定永远等待答复。
  • -W:用于指定等待答复的时间。
  • -4:仅用于IPv4查询传输。
  • -6:仅用于IPv6查询传输。

如何通过SSH连接

安装了SSH客户端和服务器后,我们可以与其他计算机建立安全连接。为了确保两台计算机之间的安全连接,它们都安装了ssh客户端和服务器。

要建立连接,请执行以下命令:

ssh your_username@host_ip_address

如果用户名已由您要连接的计算机验证,请执行以下命令:

ssh host_ip_address

上面的命令将要求输入密码,键入密码,然后按Enter键。

如果是第一次建立连接,它将要求继续连接;输入yes,然后按Enter。它将添加ECDSA(椭圆曲线数字签名算法)密钥,并将您连接到远程服务器。

现在,您可以通过终端来控制和管理远程计算机。如果在建立连接时遇到任何困难,请考虑以下几点:

  • 提供的远程计算机的IP地址是否有效。
  • SSH守护程序正在侦听的端口未被防火墙阻止或未正确转发。
  • 您输入的用户名和密码正确。
  • SSH软件已正确安装。