命令:ssh -t -t root@192.168.11.2 "cd /home/test/; ls -l"
这条命令是使用 SSH 客户端连接到远程主机 192.168.11.2
,并以 root 用户的身份登录。具体来说,命令的各部分作用如下:
ssh
: 开始 SSH 客户端。-t -t
: 告诉 SSH 客户端在远程服务器上分配一个伪终端,以便在该终端上运行命令,并向远程服务器发送两个-t
参数以确保正确性。root@192.168.11.2
: 指定远程主机的用户名和 IP 地址/主机名。"cd /home/test/; ls -l"
: 指定要在远程服务器上执行的命令,该命令包括两个部分:cd /home/test/
命令将远程服务器上的当前工作目录更改为/home/test/
。ls -l
命令将列出/home/test/
目录中的所有文件和子目录,并显示文件的详细信息。
因此,这条命令将首先连接到远程服务器,然后切换到 /home/test/
目录,并列出该目录中的所有文件和子目录。如果您需要在远程服务器上执行其他命令,只需将它们添加到同一个字符串中,并用分号分隔即可。值得一提的是,命令执行完后,SSH 客户端会自动退出并关闭连接。
命令不需要输入密码:
这是因为在您第一次使用SSH客户端连接到远程主机时,您可能会看到一条消息,“是否要将此主机的公钥添加到已知主机列表中?”。如果您同意将公钥添加到已知主机列表中,则 SSH 将在本地计算机上创建一个匹配该主机的记录,并使用该记录验证未来的连接。
在将公钥添加到已知主机列表后,SSH 客户端会自动使用与该主机关联的私钥进行身份验证,从而无需再次输入密码。因此,在您第二次或随后的连接尝试中,SSH 客户端会直接使用已知主机列表中的私钥进行身份验证,并免去了重新输入密码的步骤。
查看公钥信息
在Linux系统中,已知主机列表存储在用户主目录下的.ssh目录中的known_hosts文件中。您可以使用以下命令查看已知主机列表中的信息:
ssh-keygen -F <hostname>
其中,<hostname>
是指远程主机的名称或IP地址。执行此命令后,会显示匹配的主机名、公钥类型、公钥摘要以及公钥本身。如果已在该主机上添加了多个密钥,则会显示所有匹配的密钥。
如果您想删除该主机的记录,可以使用以下命令进行删除:
ssh-keygen -R <hostname>
其中,<hostname>
是您要删除记录的主机名或IP地址。执行此命令后,会删除已知主机列表中该主机的所有记录。
ssh-keygen 是一个命令行工具,用于生成、管理和转换 SSH(Secure Shell)协议的身份验证密钥。SSH 是一种安全协议,用于加密远程访问远程系统和在系统之间进行安全数据传输。
ssh-keygen 实用程序可以为 SSH 协议基于身份验证的生成私钥和公钥对。私钥保存在客户端系统上,而公钥则复制到要访问的远程系统上。
ssh-keygen 命令有几个选项和子命令,允许用户生成和管理密钥对、转换密钥格式、设置密钥文件权限或撤销对密钥的访问。
以下是一些最常用的选项和子命令的简要总结:
-
-t
: 指定要创建的键的类型,例如 "rsa"、"ed25519"、"ecdsa" 等。 -
-b
: 指定要生成的密钥中的位数。默认值为 2048 位。 -
-f
: 指定输出密钥文件的文件名。 -
-N
: 为私钥设置新的密码短语。 -
-p
: 允许用户更改私钥的密码短语。 -
-i
: 将私钥转换为 OpenSSH 兼容格式。 -
-e
: 将 OpenSSH 私钥或公钥文件转换为另一种格式。 -
-y
: 从 OpenSSH 私钥文件中提取公钥。 -
-L
: 显示公钥文件的指纹。 -
-R
: 从已知主机列表中删除主机。 -
-A
: 生成所有缺失的主机密钥。
总的来说,ssh-keygen 是一个功能强大的实用程序,对于生成、管理和保护 SSH 密钥非常有用,这些密钥对于安全的远程访问至关重要。