为了避免使用 scp 或其他 SSH 命令时每次都输入密码,你可以设置 SSH 密钥对来进行无密码登录。
要实现使用 scp 进行无密码登录远程服务器,你需要确保已经正确配置了 SSH 公钥认证。以下是一些详细的步骤来帮助你完成这一配置:
本地服务器生成SSH密钥对(如果尚未生成)
ssh-keygen -t rsa -b 4096此命令会在默认位置 ~/.ssh/ 下生成 id_rsa 和 id_rsa.pub 文件。如果希望指定位置或文件名,可以在命令后加上 -f 参数。
将公钥复制到远程服务器
- 假设远程服务器为10.11.27.239
使用 ssh-copy-id 工具可以很方便地将公钥复制到远程服务器:
ssh-copy-id root@10.11.27.239如果你的系统没有安装 ssh-copy-id,你可以手动执行以下步骤:
- 打开本地服务器上的 ~/.ssh/id_rsa.pub 文件。
- 复制里面的内容。
- 登录到远程服务器:ssh root@192.168.215.239。
- 创建或进入 ~/.ssh 目录:mkdir -p ~/.ssh。
- 设置正确的权限:chmod 700 ~/.ssh。
- 创建或编辑 ~/.ssh/authorized_keys 文件:touch ~/.ssh/authorized_keys 或者 vi ~/.ssh/authorized_keys。
- 将刚才复制的公钥粘贴到 authorized_keys 文件内,每行一个公钥。
- 设置正确的文件权限:chmod 600 ~/.ssh/authorized_keys。
测试无密码登录
退出远程会话,然后尝试无密码登录:
ssh root@10.11.27.239如果一切正常,你应该可以直接登录,而不需输入密码。
使用scp无密码传输文件
现在可以使用scp讲文件从本地传输到远程服务器,无需输入密码
scp /local/file root@10.11.27.239:/remote/directory确认无密码登录配置
为了确认配置是否正确,你可以检查远程服务器上的 ~/.ssh/authorized_keys 文件是否包含你的公钥,并且确保该文件的权限设置正确。
安全注意事项
- 不要在 .ssh/authorized_keys 文件中添加注释,因为它们可能会导致SSH无法正确解析该文件。
- 不要在公共网络上传输未加密的SSH密钥,以防止被截获。
- 如果不再信任某个密钥,记得从 authorized_keys 文件中删除相应的条目。
通过上述步骤,你应该能够实现使用 scp 无密码登录并传输文件到远程服务器。如果遇到任何问题,请检查SSH配置文件 /etc/ssh/sshd_config 并确保允许公钥认证。
评论 (0)