通过网络传输文件无需密码

通过网络传输文件无需密码

我是 Linux 脚本编写新手。我想每天将 Linux 机器上的某个文件复制到 FreeNAS 中,而无需输入密码。我该怎么做?我应该映射网络驱动器吗?提前致谢。

答案1

使用 rsync 和 SSH 备份


免责声明:有很多方法,这是我个人首选的方法

确保你的 SSH 已启动并运行目的地主机(取决于如何在 FreeNAS 上安装/启动 SSH - 我不知道)

sudo apt-get install openssh-server

然后,你会发现可以使用密钥文件(无需密码)登录,然后在(源)Ubuntu Linux PC 上输入以下内容

ssh-keygen -t dsa -f /home/username/.ssh/rsync_keyfile.dsa

无需设置密码,只需按两次回车键!

免责声明:我通常建议使用密码,但不建议用于脚本目的

现在我们从来源-目的主机,在这里你必须输入密码目标用户一次

ssh-copy-id -i /home/username/.ssh/rsync_keyfile.dsa dst-user@destination-host

您可以测试它,看看它是否有效以及是否可以登录

ssh -i /home/username/.ssh/rsync_keyfile.dsa dst-user@destination-host

然后你可以使用

rsync -<rsync options> -e "ssh -i /home/username/.ssh/rsync_keyfile.dsa" /local/backup/files/* dst-user@destination-host:/remote/backup/

我建议使用-a以及和-u-h-P

这些选项告诉 rsyncArchive(选项的良好组合),仅更新(复制)源上比目标上新的文件,使其H人类可读,并向我们展示整个转移的进展。

如果您在脚本中使用它,请确保执行该脚本的用户是 rsync_keyfile.dsa 的所有者,否则它将不会被使用。

答案2

SSH 是一种简单的方法。您可以使用文件浏览器通过 sftp(简称 SSH FTP)连接到联网设备 - ubuntu 的文件浏览器是 nautilus,它可以做到这一点。

您可以从以下位置找到 ssh 的一些基本信息和配置这里

生成密钥并将其添加到服务器的授权密钥列表后,单击Other Locations左侧面板底部,将弹出“连接到服务器”框,允许您通过 sftp 进行连接。

在此处输入图片描述

解释一下红色部分的内容:

  • sftp://是传输协议。

  • git是服务器上的用户。我在我的服务器上创建了一个名为 git 的用户。根据您的 ssh 服务器配置,您可能只想允许服务器上的特定用户进行连接。

  • homeserver是我的服务器的别名,它是通过 hosts 文件配置的/etc/hosts

  • /home/git是我单击“连接”时最初打开的目录。

您可以为该连接添加书签,以便随时打开它。

在此处输入图片描述

相关内容