通过SSH 密钥认证,不用再手动输入服务器密码

通过ssh连接服务器或使用 rsync 时每次都需要输入密码,可以通过设置 SSH 密钥认证 来避免每次手动输入密码。SSH 密钥认证是一种安全且方便的方式来连接远程主机,而无需每次输入密码。

设置 SSH 密钥认证

以下是配置 SSH 密钥认证的步骤,避免每次 rsync 时输入密码。

1. 生成 SSH 密钥对

首先,在本地计算机上生成一对 SSH 密钥(如果你还没有生成过)。

ssh-keygen -t rsa -b 2048

此命令会生成一个新的密钥对。按提示操作(可以直接按 Enter 键,使用默认文件路径)。通常,密钥对会保存在 ~/.ssh/id_rsa~/.ssh/id_rsa.pub 文件中。

2. 将公钥复制到远程主机

将生成的公钥 id_rsa.pub 复制到远程主机的 ~/.ssh/authorized_keys 文件中。可以使用 ssh-copy-id 命令自动完成这个过程:

ssh-copy-id user@remote_host

其中 user 是远程主机的用户名,remote_host 是远程主机的 IP 地址或域名。

如果没有 ssh-copy-id 工具,可以手动执行以下操作:

  1. id_rsa.pub 内容复制到远程主机。
  2. 登录到远程主机:
    ssh user@remote_host
    
  3. 在远程主机上执行以下命令,确保 ~/.ssh 目录和 authorized_keys 文件存在:
    mkdir -p ~/.ssh
    nano ~/.ssh/authorized_keys
    
  4. id_rsa.pub 的内容粘贴到 authorized_keys 文件中。

3. 测试 SSH 无密码登录

现在你可以测试是否可以通过 SSH 无密码登录远程主机:

ssh user@remote_host

如果配置正确,你应该不再需要输入密码,而是直接登录。

4. 使用 rsync 无密码传输文件

现在,使用 rsync 传输文件时,应该不会再提示输入密码。比如:

rsync -avz /local/file user@remote_host:/remote/directory/

小结

通过设置 SSH 密钥认证,你可以避免每次使用 rsync 时输入密码。只需一次配置 SSH 密钥对并将公钥复制到远程主机,后续使用 rsync 或 SSH 时即可无需输入密码。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容