在使用 scp 命令传送文件到远程主机时,每次都需要输入密码是很麻烦的。有一种方法可以让你在使用 scp 命令时不需要输入密码,那就是使用 ssh 免密码登录。
要实现 ssh 免密码登录,需要在本地主机上生成一对密钥(公钥和私钥),然后将公钥拷贝到远程主机的 authorized_keys 文件中。接下来,当你使用 ssh 命令登录远程主机时,就不需要再输入密码了。
下面是一个使用 ssh 免密码登录的例子:
- 在本地主机上生成密钥对:
$ ssh-keygen -t rsa
- 将公钥拷贝到远程主机的 authorized_keys 文件中:
$ scp ~/.ssh/id_rsa.pub user@remote_host:~/.ssh/authorized_keys
- 现在,你就可以使用 ssh 命令免密码登录远程主机了:
$ ssh user@remote_host
注意:上述步骤中的 user 和 remote_host 都需要替换为实际的用户名和主机名。
如果你想在 shell 脚本中使用 scp 命令自动登录远程主机,可以在脚本中加入以下代码:
# 使用 scp 命令将文件 file.txt 传送到远程主机的 /tmp 目录中
scp file.txt user@remote_host:/tmp