怎样在不输入密码的情况下通过 SSH 远程复制文件

SSH(Secure Shell)是一种用于连接远程设备的加密协议。 默认情况下,它工作在 TCP 端口 22。使用 SSH 连接远程服务器有两种方法,一种是使用密码验证,另一种方法是使用公钥进行验证。 在本教程中,您将学习怎样在 CentOS8 中生成 SSH 密钥并通过 SSH (SCP) 复制文件而无需输入密码。

生成 SSH 密钥

在生成 SSH 密钥之前。 首先,验证是否安装了 SSH。 要进行验证,请打开终端并键入以下命令。

# ssh –V

验证SSH包后。 现在我将使用以下命令生成 SSH 密钥。

# ssh-keygen

为了加强安全性,您可以根据需要提及加密算法,如下所示。

# ssh-keygen –t rsa

# ssh-keygen –t rsa –b 4096

输入上述命令后,应出现以下输出。

rsa 密钥文件名

要将文件保存在建议的目录中,请按 进入.

接下来,它会提示您输入密码,将其留空,然后按 Enter。 应出现以下输出。

密钥对已创建

SSH 密钥生成成功。 您可以通过使用以下命令查看您的 SSH 密钥来验证它。

显示公钥

此命令将打印您的 SSH 密钥。

将 SSH 复制到远程端,使用以下命令。

# ssh-copy-id –i [email protected]

将密钥复制到目标服务器

如果需要双向通信,请在远程端重复上述所有过程。

无密码复制文件:

使用以下命令在远程端复制文件。

# scp file.txt [email protected]:/tmp/

用scp复制文件

它会将您的文本文件复制到远程服务器,为了验证,请转到远程端并验证您的文件是否已被复制。

文件已复制到远程服务器

SSH 配置

有时您需要要求在远程端配置 SSH 以进行身份​​验证。 在这种情况下,启用 SSH 身份验证密钥,为此打开 /etc/ssh/sshd_config,并启用或添加以下行。

RSAAuthentication yes

PubkeyAuthentication yes

Save 配置文件并使用以下命令重新启动服务。

# systemctl restart sshd

结论

在本教程中,我们学习了怎样在 CentOS8 中生成 SSH 身份验证密钥并通过 SSH 复制文件,而无需输入密码。 希望本教程能帮助你理解SSH密钥生成和远程复制文件。

怎样在不输入密码的情况下通过 SSH 远程复制文件

相关阅读:

Posted in: Linux