如何使用 ftp 将文件从机器 A 复制到机器 B

如何使用 ftp 将文件从机器 A 复制到机器 B

我想使用命令将文件从源机器 A 复制到目标机器 B,并且想使用 ftp。

我试过这个

scp /home/varun/Desktop/Test.java username_for_target_machine@ip_address_of_target_machine:/home/Desktop/

The authenticity of host 'ip_address_of_target_machine (ip_address_of_target_machine)' can't be established.
RSA key fingerprint is 4a:49:cc:9d:ab:f6:ec:4f:b2:0b:63:ef:8f:b8:76:76.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ip_address_of_target_machine' (RSA) to the list of known hosts.
qaserve@ip_address_of_target_machine's password: 

当我给出目标机器的密码时

Permission denied, please try again.

我尝试了多次但得到的输出相同。

  1. 我哪里犯了错误?
  2. 我如何在命令中提供用户名和密码以便它不会询问密码?

更新:1

我尝试使用 ssh。下面是我遵循的步骤。

1. 验证本地主机和远程主机是否正在运行 openSSH

OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

2. 使用 ssh-keygen 在本地主机上生成密钥对

Generating public/private rsa key pair.
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:
Your identification has been saved in /home/jsmith/.ssh/id_rsa.
Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
The key fingerprint is:
31:3a:5d:dc:bc:81:81:71:be:31:2b:11:b8:e8:39:a0 jsmith@local-host

3. 在远程主机上安装公钥。

[remote-host]$ vi ~/.ssh/authorized_keys 
ssh-rsa ABIwAAAQEAzRPh9rWfjZ1+7Q369zsBEa7wS1RxzWR jsmith@local-host

4. 授予远程主机上的 .ssh 目录适当的权限。

[remote-host]$ chmod 755 ~/.ssh
[remote-host]$ chmod 644 ~/.ssh/authorized_keys

5.使用 SSH 密钥认证从本地主机登录到远程主机,以验证其是否正常工作。

[local-host]$ ssh -l jsmith remote-host

当我运行上述命令时,我得到:

ssh: connect to host remote-host port 22: Connection timed out

当我输入

ssh -l ipaddress_of_remote-host remote-host

它要求输入密码:当我提供密码时,它会连接到 remote_host。

为什么我在远程主机注册公钥后还要求再次输入密码?

更新 2: 抱歉造成混乱。

  1. 我想使用任何协议将文件从源复制到目标。更改权限

  2. [远程主机]$ chmod 700 ~/.ssh [远程主机]$ chmod 600 ~/.ssh/authorized_key

答案1

  1. 您可能没有远程服务器上 /home/Desktop 的权限,您可能需要尝试 /home/username_for_target_machine/Desktop
  2. 不,我不这么认为。但你可以谷歌搜索“ssh 公钥认证”

答案2

您在这里混淆了各种事情。首先,这些都与 ftp 无关。您使用的是scp,而不是ftp。您为什么要提到 ftp?然后,您似乎试图使用 IP 作为用户名连接到主机(-l提供要连接的用户名)。此外,文件的权限是错误的authorized_keys,您需要600700,而不是644755。最后,无论如何,这真的不是复制密钥的好方法,这就是它的用途ssh-copy-id

那么,让我们从头开始尝试。步骤 1 和 2 都正确,现在执行以下操作:

  1. 删除您添加到远程文件的条目authorized_keys

  2. 修复远程主机的权限:

    [remote-host]$ chmod 700 ~/.ssh/
    [remote-host]$ chmod 600 ~/.ssh/authorised_keys
    
  3. 从本地主机将您的密钥复制到远程:

    [local-host]$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@ipaddress_of_remote-host
    
  4. 尝试再次登录

    [local-host]$ ssh jsmith@ipaddress_of_remote-host
    
  5. 看起来主机没有正确地将其名称导出到网络。要快速修复,请运行:

    [本地主机]$ echo “远程主机的 ip 地址主机名” | sudo tee -a /etc/hosts

    这会将主机名称保存为其 IP 的别名。现在,您应该能够连接了ssh user@hostname

答案3

我认为您尚未配置您的 FTP,因为它要求输入密码,因此只需检查此链接:

1)http://www.mpipks-dresden.mpg.de/~mueller/docs/suse10.2/html/opensuse-manual_en/manual/sec.filetrans.copy.html

要配置 FTP 服务器,请按以下步骤操作:

**Prepare the FTP server:**

    Install the vsftp package.

    Open a shell, login as root and save a backup copy of /etc/vsftpd.conf:

    cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

    Create an access point for anonymous FTP

    mkdir ~ftp/incoming
    chown -R ftp:ftp ~ftp/incoming

Replace the configuration files depending on the scenario you prefer (refer to the manual page of vsftpd.conf for advanced configuration options):

Allowing Anonymous Read and Write Access

    #
    listen=YES

    # Enable anonymous access to FTP server
    anonymous_enable=YES

    #
    local_enable=YES
    # Enable write access
    write_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    dirmessage_enable=YES
    # Write log file 
    xferlog_enable=YES
    connect_from_port_20=YES
    chown_uploads=YES
    chown_username=ftp
    ftpd_banner=Welcome to FTP service.
    anon_root=/srv/ftp

Grant Restricted Permissions to FTP Users (Home Only)

    chroot_local_users=YES

Restart the FTP server:

rcvsftp start

在客户端上,只需输入 URLftp://主机名在浏览器或 FTP 客户端中。将 HOST 替换为服务器的主机名或 IP 地址。有许多图形用户界面可用于浏览 FTP 服务器的内容。要查看它们的列表,只需在 YaST 包管理器的搜索提示符下输入 FTP。

相关内容