SSH是Linux和Unix世界中最流行的工具之一。SSH或Secure Shell顾名思义创建到远程系统的安全Shell连接。大多数Linux系统管理员都喜欢使用SSH进行远程管理。SSH创建到远程系统的加密通道,并通过这些安全通道传输数据。
语法
基本ssh语法如下所示。
ssh OPTIONS [email protected] COMMAND
- `OPTIONS`用于指定ssh命令选项,这些选项可以更改身份验证类型、压缩等。本教程中介绍了大多数选项
- `USERNAME`是要用于在远程系统或主机上进行身份验证的用户名。用户名是可选的,如果未指定,则使用当前用户名。
- `HOSTNAME`是要连接的远程系统或主机的主机名或IP地址。
- `COMMAND`是可选的,我们可以在远程系统上运行COMMAND,而不需要交互式shell。
连接到远程
ssh的简单用法就是提供远程系统的主机名或IP地址并连接。用户名由当前用户提供。仅当前用户用户名用于远程系统。
$ ssh 192.168.122.22

显式指定用户名
在前面的示例中,用户名由会话提供。我们需要为远程连接使用不同的用户名吗?将用户名添加到远程系统IP地址或主机名中,并使用下面的@符号可以解决此问题。
$ ssh [email protected]

或者
我们可以为用户名提供 -我 参数如下。
$ ssh -l root 192.168.122.22

指定端口号
Ssh协议默认使用TCP端口22。Ssh客户机还假设远程系统使用默认端口号。在某些情况下,端口号可以不同于22,因此远程端口号应该显式地提供给ssh -第 参数如下。
$ ssh -p 22 192.168.122.22

使用SSH-Keygen创建公共私钥/证书
SSH非常先进,具有完整的协议。SSH为身份验证提供了不同的协议。默认的是基于密码的身份验证,就像我们之前做的那样。基于密钥或基于证书的身份验证比基于密码的身份验证更安全。要使用基于密钥的安全性,应该为用户创建公钥和私钥。
$ ssh-keygen
在密钥生成过程中会提出一些问题。以下是步骤。
- 默认情况下,密钥存储在用户主目录中。确切的路径是 /主页/ismail/.ssh/ 并且密钥被命名为 id u rsa.pub网站 , 身份证号码 . 如果我们想更改默认值,我们可以提供它们,如果不只是按回车键和跳过。
Enter file in which to save the key (/home/ismail/.ssh/id_rsa):
- 密钥可以通过加密来保护。尤其是名为 身份证号码 这很重要。如果我们想加密,然后输入密码,如果不只是按回车键和跳过。
Enter passphrase (empty for no passphrase): Enter same passphrase again:
钥匙 基于身份验证
我们之前已经创建了密钥。我们可以使用这些密钥自动进行身份验证,而无需提供任何密码。首先,我们应该将公钥部署到远程系统。由于SSH工具名为 ssh副本id . 远程用户名和主机提供如下。我们的公钥被部署到远程用户授权密钥数据库。默认情况下,我们的公钥是 /home/ismail/.ssh/idu rsa.pub
$ ssh-copy-id [email protected]

显式指定键
SSH行为默认使用密钥 /home/ismail/.ssh/idu rsa.pub 和 /主页/ismail/.ssh/idu rsa 但有时这并不实际。我们可以用 -我 参数如下。
$ ssh -i .ssh/id_rsa [email protected]

远程运行命令
在远程主机上运行单行命令打开新shell并键入命令对我们来说可能是一项艰巨的工作。SSH提供了在不打开交互式bashshell的情况下远程运行命令的能力。这将运行命令 ip地址显示 在远程系统上。
$ ssh 192.168.122.22 "ip address show"

显式配置
SSH配置通常驻留在 /etc/ssh/sshu配置 或 ~/.ssh/配置 . 可使用指定替代配置 -F级 参数如下。
$ ssh -F ssh_config 192.168.122.22

端口转发
端口转发 是SSH提供的有用特性。端口转发的一般定义是在本地或远程系统端口之间进行隧道传输。例如,我想通过远程系统从本地系统连接google.com。连接到远程系统时应启用端口转发。
相关文章: Pssh-使用本地系统在多个远程Linux服务器上执行命令
本地端口转发
在本地端口转发中,本地端口将转发到远程系统,然后转发到目标系统主机和端口。
-L LOCALPORT : DESTINATIONHOST : DESTINATIONPORT
$ ssh -L 2222:poftut.com:2222 192.168.122.22

连接到远程系统后,本地系统中的本地端口2222将打开。我们可以用以下命令检查本地端口2222。
$ netstat -tl | grep 2222

现在,如果我们尝试连接本地端口2222,这个端口将被转发到主机poftut.com和端口2222
远程端口转发
远程端口转发与本地pot转发相反。为转发提供的主机名将通过本地系统从远程系统传输。
-L REMOTEPORT : DESTINATIONHOST : DESTINATIONPORT
$ ssh -R 5900:localhost:5900 192.168.122.22

在IP地址为192.168.122.22的远程系统中,打开端口5900,并将此端口转发到本地系统端口5900。
动态端口转发
动态端口转发将使用默认端口号为1080的SOCKS。但可以使用另一个端口号。SOCKS通常用于代理浏览器,比如Chrome、Firefox、Opera。代理流量将转发到远程系统。
$ ssh -D 1080 192.168.122.22

X11转发
Linux系统用于guix11服务器。SSH最好的特性之一是可以在本地系统上运行带有GUI的远程应用程序。应用程序实际上在远程系统上运行,但GUI或X11协议被转发到本地系统,并显示为本地应用程序。要启用转发,请提供 -十 参数。
$ ssh -X 192.168.122.22

或者
相关文章: Linux-SCP命令使用举例
只要一枪
$ ssh -X 192.168.122.22 firefox

压缩
SSH可以通过压缩其网络流量来节省带宽和网络使用量。压缩能提供的好处是数据像文本一样压缩率很高。每个会话都可以使用 -C级 参数。
$ ssh -C 192.168.122.22

指定源地址
一些本地系统可能有多个接口和/或多个IP地址。如果远程系统有基于IP地址的网络限制,这可能是一个问题。设置一个特定的源IP地址可以解决这个问题。
$ ssh -b 10.0.3.1 192.168.122.22

日志文件
SSH客户端可以生成日志。通常这些日志会打印到控制台。但它们可以用 -电子 选项。
$ ssh -E ssh.log 192.168.122.22
详细模式和调试
有时我们用SSH连接远程系统会有困难。在这种情况下,最好的解决方案是调试连接步骤。SSH客户机可以提供详细的调试输出 -五 . 添加更多 喜欢 -变压阀 将提高调试级别和输出。
$ ssh -v 192.168.122.22

版本
要显示SSH客户机版本并退出,请使用选项 -五
$ ssh -V
