Как скопировать файл по 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. Нет, я так не думаю. Но вы можете поискать в Google "ssh Public Key Authentication"

решение2

Вы путаете разные вещи. Во-первых, все это не имеет никакого отношения к ftp. Вы используете scp, а не ftp. Почему вы упоминаете ftp? Затем, вы, кажется, пытаетесь подключиться к хосту, используя IP в качестве имени пользователя ( -lдает имя пользователя для подключения). Кроме того, права доступа для файла неверны authorized_keys, вам нужно 600и 700, а не 644и 755. Наконец, это действительно не лучший способ копировать ключи, для этого и есть 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. Похоже, хост не экспортирует свое имя в сеть правильно. Для быстрого исправления выполните:

    [local-host]$ echo "ipaddress_of_remote-host имя_хоста" | 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-сервера. Чтобы получить их список, просто введите FTP в строке поиска менеджера пакетов YaST.

Связанный контент