Linux 中常用的 SSH 命令及示例
简介
安全外壳 (SSH) 是一种用于通过不安全的网络安全地访问远程计算机和其他安全网络服务的协议。系统管理员和开发人员广泛使用它来安全地管理远程服务器并执行其他网络操作。在本文中,我们将探讨 Linux 上使用的一些更常用的 SSH 命令,并举例说明其用法。无论您是经验丰富的资深人士还是刚刚开始使用 SSH,本文都将为您提供宝贵的见解,了解这些基本命令的功能和多功能性。因此,让我们深入了解每个 Linux 用户都应该了解的关键 SSH 命令。
ssh
ssh 命令用于安全地登录到远程计算机并在该计算机上执行命令。该命令的基本语法为“ssh user@host”,其中 user 是远程计算机上的用户名,host 是远程计算机的地址或主机名。
$ ssh [email protected] [email protected]'s password: Last login: Wed Feb 10 09:07:23 2023 from 192.168.43.120 [user@remote_machine ~]$
scp
scp 命令用于在两台计算机之间安全地复制文件。该命令的基本语法为“scp source_file user@destination_host:destination_path”,其中source_file 是要复制的文件,user 是远程计算机上的用户名,destination_host 是远程计算机的地址或主机名,destination_path 是远程计算机上复制文件的目标位置。
$ scp file.txt [email protected]:/home/user/file.txt [email protected]'s password: file.txt 100% 16KB 100.1KB/s 00:00
ssh keygens
ssh-keygen 命令用于生成用于 SSH 身份验证的公钥/私钥对。这允许进行安全身份验证,而无需密码。该命令的基本语法为“ssh-keygen”,它将在默认位置(~/.ssh/id_rsa)生成密钥对。
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: SHA256:5Mv3q4WniFfrk4ZR+xP2vRnKjV7QQcKWnF1XMvCEjgk user@local_machine The key's randomart image is: +---[RSA 2048]----+ | oo.o++ | | o o=.. | | o o o o o | | o o o o o | | o o o S | | o + o | | .. o | | o o | | o | +----[SHA256]-----+
ssh-copy-id
ssh-copy-id 命令用于将公钥复制到远程计算机,以便与 SSH 身份验证一起使用。该命令的基本语法为“ssh-copy-id user@host”,其中 user 是远程计算机上的用户名,host 是远程计算机的地址或主机名。
$ ssh-copy-id [email protected] [email protected]'s password: Now try logging into the machine, with "ssh '[email protected]'", and check in:
ssh-keyscan
ssh-keyscan 命令用于收集远程主机的公钥。然后,此信息用于填充“~/.ssh/known_hosts”文件,该文件用于验证远程主机的身份。ssh-keyscan 的基本语法为“ssh-keyscan hostname”,其中 hostname 是远程主机的名称或 IP 地址。
$ ssh-keyscan domain.com # domain.com:22 SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2 domain.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABBAABAQDG7AsPp7uvIc9sGoA7V16MgA/z8DyzxQHsiJmVgcgEKbF7cxr8rvBjKPAyHg0yw1G0H8KjzQg9seYFZcLjKsgxRbKf72GtCQgwQqT3qrxv1TZhYzZbLcO7xlz74CJp7jKzjOIW7eLgsfVRuV7A/I6Q2W6Gx/vU2Qu6/ej6U5W44MvkvgfrE9ZLn0Nupq3V7CipysIjKV7wEBCjM8b7IuRv1ZVjQ2fLgSJe6Q+oxvUeH6U5j6F8Wgf97+zZHX9BBjLUnrC/pj/aAaJN/w18r+zN0++2fNjH/9Y0L/NtOkKtAZ16Rde1y7tQsOmj3T/zjB0mZplzSGbxRKjJksRcfMt7sEt
ssh-add
ssh-add 命令用于将私钥添加到 SSH 身份验证代理。此代理用于在内存中存储私钥,从而允许使用它们而无需每次都输入密码。要将密钥添加到身份验证代理,只需运行“ssh-add path/to/private_key”即可。这可能是管理多个私钥的便捷方法,因为它们都可以添加到身份验证代理中并在需要时使用。
$ ssh-add ~/.ssh/id_rsa Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
结论
这些只是 Linux 中许多常用SSH 命令中的一部分。了解和使用这些命令可以极大地提高远程操作的安全性及效率。此外,还有许多其他选项和这些命令的变体,可用于更高级的操作。与任何强大的工具一样,必须充分了解这些命令的功能和局限性,以便有效且安全地使用它们。