带命令示例的SSH教程

SSH是Linux和Unix世界中最流行的工具之一。SSH或Secure Shell顾名思义创建到远程系统的安全Shell连接。大多数Linux系统管理员都喜欢使用SSH进行远程管理。SSH创建到远程系统的加密通道,并通过这些安全通道传输数据。

null

语法

基本ssh语法如下所示。

ssh OPTIONS [email protected] COMMAND
  • `OPTIONS`用于指定ssh命令选项,这些选项可以更改身份验证类型、压缩等。本教程中介绍了大多数选项
  • `USERNAME`是要用于在远程系统或主机上进行身份验证的用户名。用户名是可选的,如果未指定,则使用当前用户名。
  • `HOSTNAME`是要连接的远程系统或主机的主机名或IP地址。
  • `COMMAND`是可选的,我们可以在远程系统上运行COMMAND,而不需要交互式shell。

连接到远程

ssh的简单用法就是提供远程系统的主机名或IP地址并连接。用户名由当前用户提供。仅当前用户用户名用于远程系统。

$ ssh 192.168.122.22
Connect To Remote
连接到远程

显式指定用户名

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

$ ssh [email protected]
Specify Username
指定用户名

或者

我们可以为用户名提供 -我 参数如下。

$ ssh -l root 192.168.122.22
Specify Username
指定用户名

指定端口号

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

$ ssh -p 22  192.168.122.22
Specify Port Number
指定端口号

使用SSH-Keygen创建公共私钥/证书

SSH非常先进,具有完整的协议。SSH为身份验证提供了不同的协议。默认的是基于密码的身份验证,就像我们之前做的那样。基于密钥或基于证书的身份验证比基于密码的身份验证更安全。要使用基于密钥的安全性,应该为用户创建公钥和私钥。

$ ssh-keygen

图片[5]-带命令示例的SSH教程-yiteyi-C++库

在密钥生成过程中会提出一些问题。以下是步骤。

  • 默认情况下,密钥存储在用户主目录中。确切的路径是 /主页/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]
Key Based Authentication
基于密钥的身份验证

显式指定键

SSH行为默认使用密钥 /home/ismail/.ssh/idu rsa.pub /主页/ismail/.ssh/idu rsa 但有时这并不实际。我们可以用 -我 参数如下。

$ ssh -i .ssh/id_rsa [email protected]
Explicitly Specify Keys
显式指定键

远程运行命令

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

$ ssh 192.168.122.22 "ip address show"
Run Command Remotely
远程运行命令

显式配置

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

$ ssh -F ssh_config 192.168.122.22
Explicit Configuration
显式配置

端口转发

端口转发 是SSH提供的有用特性。端口转发的一般定义是在本地或远程系统端口之间进行隧道传输。例如,我想通过远程系统从本地系统连接google.com。连接到远程系统时应启用端口转发。

相关文章: Pssh-使用本地系统在多个远程Linux服务器上执行命令

本地端口转发

在本地端口转发中,本地端口将转发到远程系统,然后转发到目标系统主机和端口。

-L LOCALPORT : DESTINATIONHOST : DESTINATIONPORT
$ ssh -L 2222:poftut.com:2222 192.168.122.22
Local Port Forwarding
本地端口转发

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

$ netstat -tl | grep 2222
Local Port Forwarding
本地端口转发

现在,如果我们尝试连接本地端口2222,这个端口将被转发到主机poftut.com和端口2222

远程端口转发

远程端口转发与本地pot转发相反。为转发提供的主机名将通过本地系统从远程系统传输。

-L REMOTEPORT : DESTINATIONHOST : DESTINATIONPORT
$ ssh -R 5900:localhost:5900 192.168.122.22
Remote Port Forwarding
远程端口转发

在IP地址为192.168.122.22的远程系统中,打开端口5900,并将此端口转发到本地系统端口5900。

动态端口转发

动态端口转发将使用默认端口号为1080的SOCKS。但可以使用另一个端口号。SOCKS通常用于代理浏览器,比如Chrome、Firefox、Opera。代理流量将转发到远程系统。

$ ssh -D 1080 192.168.122.22
Dynamic Port Forwarding
动态端口转发

X11转发

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

$ ssh -X 192.168.122.22
X11 Forwarding
X11转发

或者

相关文章: Linux-SCP命令使用举例

只要一枪

$ ssh -X 192.168.122.22 firefox
X11 Forwarding
X11转发

压缩

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

$ ssh -C 192.168.122.22
Compression
压缩

指定源地址

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

$ ssh -b 10.0.3.1 192.168.122.22
Specify Source Address
指定源地址

日志文件

SSH客户端可以生成日志。通常这些日志会打印到控制台。但它们可以用 -电子 选项。

$ ssh -E ssh.log 192.168.122.22

详细模式和调试

有时我们用SSH连接远程系统会有困难。在这种情况下,最好的解决方案是调试连接步骤。SSH客户机可以提供详细的调试输出 -五 . 添加更多 喜欢 -变压阀 将提高调试级别和输出。

$ ssh -v 192.168.122.22
Verbose Mode and Debug
详细模式和调试

版本

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

$ ssh -V
Version
版本
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享