Linux SCP无密码传输文件设置与使用教程

需积分: 39 4 下载量 10 浏览量 更新于2024-09-17 收藏 45KB DOC 举报
"SSH-SCP使用方法" SSH-SCP(Secure Copy Protocol)是一种基于SSH协议的安全文件传输工具,常用于在Linux或Unix系统之间无密码地传输文件。在需要频繁进行文件传输或者自动化脚本中,避免每次手动输入密码是十分必要的。以下是详细步骤和注意事项: 1. **生成SSH密钥对**: 在主机A上,运行`ssh-keygen -t rsa`命令生成RSA公钥/私钥对。默认情况下,私钥会被保存在`~/.ssh/id_rsa`,公钥保存在`~/.ssh/id_rsa.pub`。在生成过程中,可以选择不设置密码(passphrase),以便于无密码登录。 2. **设置文件权限**: 确保`.ssh`目录、私钥文件和公钥文件具有正确的权限: - `.ssh`目录:`chmod 700 ~/.ssh` - 私钥文件:`chmod 600 ~/.ssh/id_rsa` - 公钥文件:`chmod 644 ~/.ssh/id_rsa.pub` - `authorized_keys`文件(稍后创建):`chmod 600 ~/.ssh/authorized_keys` 3. **复制公钥**: 将主机A的公钥`id_rsa.pub`复制到主机B的`~/.ssh/`目录下,并将其重命名为`authorized_keys`。可以通过`scp`命令实现: ```bash scp ~/.ssh/id_rsa.pub root@192.168.0.3:/root/.ssh/authorized_keys ``` 4. **设置主机B的信任**: 在主机B上,确保公钥已正确添加到`~/.ssh/authorized_keys`文件,并设置相应权限。 5. **禁止root直接SSH登录**(可选): 如果你想禁止root用户直接通过SSH登录,可以在主机B的`/etc/ssh/sshd_config`文件中添加以下行: ``` PermitRootLogin no ``` 并重启SSH服务:`service ssh restart` 6. **使用SCP命令**: 现在,你可以从主机A无密码地获取主机B的文件了。例如,要从主机B的`/home/user/file.txt`复制到主机A的当前目录,只需运行: ```bash scp user@192.168.0.3:/home/user/file.txt . ``` 或者,如果你想将文件从主机A复制到主机B,命令如下: ```bash scp /path/to/local/file user@192.168.0.3:/home/user/ ``` SSH-SCP提供了安全的文件传输,通过公钥认证避免了每次交互式密码验证,这对于自动化任务和无人值守的系统操作尤其有用。注意,尽管这简化了登录过程,但也要确保只有授权的用户才能访问你的系统,以防止未授权的访问。