使用安全 Shell (ssh) 的 Linux 命令使用安全 Shell (ssh) 的 Linux 命令使用安全 Shell (ssh) 的 Linux 命令使用安全 Shell (ssh) 的 Linux 命令
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

使用安全 Shell (ssh) 的 Linux 命令

介绍

我们可以通过多种方式通过 CLI 在两个系统 [Linux 到 Linux、Windows 到 Linux] 之间访问或通信。 Secure Shell (ssh) 是访问任何其他 Linux 系统的非常有用的工具。如果两个Linux系统通过任何网络连接,那么我们可以使用ssh访问其他系统。使用此设施有一些基本先决条件

  • ssh 客户端软件示例:Linux 中默认的 ssh 二进制文件、putty、mobaxterm 等。

  • ssh 服务器运行在远程 Linux 系统中。

  • 远程系统的 IP 或主机名。

让我们讨论一下使用 ssh 的 Linux 系统到 Linux 系统的通信。

配置 ssh 设置

从前提条件来看,

如果客户端系统是windows,我们需要安装putty或mobaxterm。对于 Linux 客户端系统,无需安装任何内容,因为默认情况下 ssh 命令可用。

我们可以运行以下命令来检查 ssh 是否已经安装。

$ ssh
usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
           [-D [bind_address:]port] [-E log_file] [-e escape_char]
           [-F configfile] [-I pkcs11] [-i identity_file] [-L address]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]
           [-w local_tun[:remote_tun]] [user@]hostname [command]

然后在Linux服务器端,我们需要安装“openssh-server”软件包。我们可以使用下面的命令来安装。

$ sudo apt-get install openssh-server

让我们假设,

系统A是客户端,系统B是服务器。

系统 B ip 为“192.168.1.102”,用户名为“rian”。我们将从系统A访问系统B。

登录远程Linux系统的命令

这是访问系统 B 的最少命令。

$ ssh <user name of system B>@<IP address or hostname of system B: 192.168.1.102>

实际命令是

$ ssh rian@192.168.1.102

系统将提示用户“rian”输入密码。当我们输入正确的密码后,ssh 成功连接到 ip 192.168.1.102 或系统 B。

输出

The authenticity of host '192.168.1.102 (192.168.1.102)' can't be established.
ECDSA key fingerprint is SHA256:YdQpl9u/N2+Dc6hPeDr8e5IdDXUJ3POj30prm1XJA2s.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.102' (ECDSA) to the list of known hosts.
rian@192.168.1.102's password:
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.15.0-45-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

447 packages can be updated.
385 updates are security updates.

New release '18.04.6 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Last login: Thu Feb 11 22:20:03 2016 from 192.168.1.4

使用 ssh 在远程系统中执行命令

如果我们想在不登录远程系统的情况下运行任何远程命令,那么我们可以使用以下语法。

$ ssh <user name of system B>@<IP address of system B: 192.168.1.102> <command full path>

这是实际的命令[示例:ls]

$ ssh rian@192.168.1.102 /bin/ls

输出

rian@192.168.1.102's password:
Desktop
Documents
Downloads
examples.desktop
Music
Pictures
Public
Templates
tutorialpoint
Videos

访问远程系统中基于 GUI 的应用程序

如果我们需要从远程系统打开任何基于 GUI 的应用程序(例如 Firefox),那么我们必须使用 –X 选项进行 ssh。

$ ssh –X rian@192.168.1.102

现在,我们可以在 ssh 终端中从远程系统打开“firefox”浏览器。如果我们在没有 –X 的情况下执行 ssh,那么我们将无法打开基于 gui 的应用程序。

$ firefox

通过 ssh 连接复制

如果我们想使用“scp”命令通过 ssh 将任何文件从系统 A 复制到系统 B,我们可以使用以下语法。

$ scp system_a_file <user name of system B>@<system B ip address:system b path>

这是实际的命令。

$ scp examples.desktop rian@192.168.1.102:/tmp/

输出

rian@192.168.1.102's password:
examples.desktop                                                                                                                100% 8980     4.4KB/s   00:02

使用 ssh 进行端口转发

要访问端口,可以使用以下命令。这是非常有用的功能

$ ssh -L 8888:localhost:8080 <user name of system B>@<ip or hostname of user B>

带有自定义端口的 ssh

默认情况下 ssh 侦听端口号 22。但是我们可以使用以下命令使用自定义 ssh 端口。

$ ssh <user@remote ip> -p 3423

重启ssh服务

如果 ssh 配置文件发生更改或任何其他原因,以下是重新启动 sshd 服务的命令。

$ sudo sshd service restart

ssh常见错误

有时我们在 ssh 到远程系统时会遇到以下错误。

ssh: connect to host 192.168.1.107 port 22: No route to host

可能的原因是远程ip不可达。我们应该 ping 远程 IP,然后尝试 ssh。

结论

通过这篇文章,我们了解了ssh命令的很多用法。使用 ssh,我们可以更快地访问另一个 Linux 系统,并执行一些操作,如复制、执行命令等。

©2015-2025 艾丽卡 support@alaica.com