适用于 Linux 用户的 SSH 命令备忘单适用于 Linux 用户的 SSH 命令备忘单适用于 Linux 用户的 SSH 命令备忘单适用于 Linux 用户的 SSH 命令备忘单
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

适用于 Linux 用户的 SSH 命令备忘单

发表 admin at 2025年2月28日
类别
  • 未分类
标签

您是否正在寻找终极 SSH 命令备忘单?此 SSH 备忘单包含日常管理 Linux 基础设施所需的 SSH 命令。 SSH 也称为 Secure Shell,是一种加密网络协议,用于通过不安全的网络安全地运行网络服务。

要开始使用不同的 ssh 命令行选项,请遵循本指南并随意测试所有这些命令。您可以在 VirtualBox 或 VMware Workstation 等虚拟环境中进行练习,而不是在生产环境中运行所有内容。

1.通过pem文件(私钥)进行SSH

如果要使用 Pem 密钥访问远程服务器,命令语法为:

ssh -i /path/to/file.pem user@server

私钥文件的路径位于-i标志之后。

2. 连接到非标准 ssh 端口:

默认的 SSH 端口是 22,要使用不同的服务端口访问远程系统,请使用 -p 选项。

ssh -p 2222 [email 

在这里,我们连接到在端口 2222 上运行的 SSH 服务器。防火墙必须允许该端口。

3. 连接并转发认证代理

使用-A 选项启用身份验证代理的转发。

ssh -A user@server

这也可以在配置文件中针对每个主机进行指定。

4. 连接远程服务器并执行命令:

有时您想在远程服务器上的 bash shell 上运行命令。这是通过在服务器部分之后传递命令及其选项来实现的。

ssh -t user@server'the-remote-command'

-t 用于强制伪终端分配。这可用于在远程计算机上执行任意基于屏幕的程序,这非常有用,例如实施菜单服务时。

例如,让我们连接到服务器并对 8.8.8.8 执行 ping 操作,计数为 3。

$ ssh outboundmx-01 'ping -c 3 8.8.8.8'
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=60 time=6.74 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=60 time=7.27 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=60 time=6.77 ms

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 6.740/6.930/7.271/0.241 ms

执行指定命令后,SSH 会话将退出。

5. 通过 SSH 建立 X 会话隧道:

ssh 中的-X选项用于启用 X11 转发。这也可以在配置文件中针对每个主机进行指定。可以使用-x禁用选项禁用 X11 转发。

ssh -X user@server

下面的示例将:

  • 使用本地主机(端口8080)和远程之间的隧道重定向流量
  • 通过代理 (personal.server.com) 的主机 (remote.example.com:5000):
ssh -f -L 8080:remote.example.com:5000 [email  -N

-N 表示不执行远程命令。这对于转发端口很有用。

6. 通过 SSH 启动特定的 X 应用程序:

使用 -X 选项通过 ssh 会话启动应用程序。

ssh -X -t user@server 'firefox'

这将启动 Firefox 应用程序并在本地计算机上显示 UI。

7.创建SOCKS代理隧道

ssh -D 9999 user@server

这将在本地主机和端口 10000 上创建 SOCKS 代理。其工作方式是分配一个套接字来监听本地端的端口,可以选择绑定到指定的bind_address。每当与此端口建立连接时,该连接都会通过安全通道转发,然后使用应用程序协议来确定从远程计算机连接到的位置。

目前支持 SOCKS4 和 SOCKS5 协议,并且 ssh 将充当 SOCKS 服务器。请注意,只有 root 可以转发特权端口。

8. 具有数据压缩和加密功能的SSH

要请求压缩所有数据(包括 stdin、stdout、stderr 以及转发的 X11、TCP 和 UNIX 域连接的数据),请使用-C选项。在使用调制解调器和其他慢速设备时,这是理想的选择连接系统。不要在更快的网络上使用它,因为它只会减慢速度。

压缩算法与gzip 使用的相同。 -c用于指定加密会话的密码规范。多个列表是通过用逗号分隔来完成的。例子

ssh user@server -C -c blowfish -X

-X –> 使用 X 会话
-C –> 进行数据压缩
-c –> 使用河豚加密SSH 会话

9.SSH复制文件

下面的示例展示了如何压缩远程服务器上的文件并通过管道传输到 tar 复制到本地系统。压缩和解压缩是使用tar命令完成的。如果您没有充当 ssh 客户端的scp或rsync,这会很有用。

$ ssh  jmutai@outboundmx-01 "cd ~/mydir; \
tar zcf - file1.txt file2.txt" | tar zxf -

# confirm if copied
$ ls file1.txt file2.txt

10.强制公钥复制到远程服务器

您尝试复制 ssh 密钥但始终失败。您可以使用以下命令强制复制:

SSH_OPTS='-F /dev/null' ssh-copy-id  user@server

11.保存私钥密码

使用 ssh,您可以配置身份验证代理来保存密码,这样您就不必在每次使用 SSH 密钥时重新输入密码。

eval $(ssh-agent) # Start agent on demand
ssh-add # Add default key
ssh-add -l # List keys
ssh-add ~/.ssh/id_rsa # Add specific key
ssh-add -t 3600 ~/.ssh/id_rsa # Add with timeout
ssh-add -D # Drop keys

12.通过SSH挂载文件夹/文件系统

从 https://github.com/libfuse/sshfs 安装 SSHFS。

另一篇文章介绍了 SSHFS 的安装和使用:

  • 在 Ubuntu/Fedora/Arch 上安装 sshfs 并使用 sshfs

该命令将远程目录挂载到本地计算机。

sshfs name@server:/path/to/folder /path/to/mount/point

完成后,您可以使用以下命令卸载目录:

fusermount -u mountpoint

13.使用macs通过SSH读取文件

文档位于 Emacs 挂载远程文件

安装 Emacs 后,可以使用以下命令读取远程文件:

emacs /ssh:name@server:/path/to/file

14. 删除 ~/.ssh/known_hosts 文件中的 IP 地址/主机名。

有时,您想要将 ssh 密钥复制到远程服务器,并收到一条警告,指出 IP/主机名已存在于 ~/.ssh/known_hosts 中,要删除该条目,请使用:

ssh-keygen -f .ssh/known_hosts -R  ip-or-hostname

16. 更新 SSH 密钥密码

使用我们的指南来更新或更改 SSH 密钥密码。

  • 在 Linux/Unix 上更改或更新 SSH 密钥密码

17. 更改SSH服务端口

以下指南应该会有所帮助。

  • 使用 SELinux 强制更改 CentOS/RHEL 和 Fedora 上的 SSH 端口

包起来

Secure Shell (SSH) 允许两台计算机之间通过安全通道交换数据。这将作为 Linux 系统管理员的终极 ssh 备忘单。您可以对您经常使用但此处未涵盖的任何命令发表评论,我很乐意更新。

©2015-2025 Norria support@alaica.com