scp
내 로컬 컴퓨터에서 명령을 실행 하여 호스트1에서 호스트2로 파일을 복사하고 싶습니다 . 호스트 1과 호스트 2 사이에 IPV6 연결이 없기 때문에 호스트 1에서 호스트 2로의 연결은 IPV4를 사용해야 합니다(제가 통제할 수 없는 이유로).
내 로컬 컴퓨터에서는 다음을 사용합니다.
scp -4 -v -r -o "ForwardAgent=yes" user@host1:myFile user@host2:
출력에는 다음이 있습니다.
debug1: Connecting to host1 [a.b.c.d] port 22.
이는 정확합니다. 그러나 IPV6을 사용하여 호스트 1에서 호스트 2로 연결해 보십시오.
debug1: Connecting to host2 [a:b:c:d:e:f:g:h] port 22
하지만 IPv6 연결이 없기 때문에 실패합니다.
호스트1에서 호스트2로의 연결에서 scp가 IPV4를 사용하도록 강제하는 방법은 무엇입니까?
추신: 저는 scp
macOS 10.13.3을 사용하고 있습니다.
==== 편집
아래는 전체 로그입니다. scp가 host1에서 명령을 보낼 때 옵션을 추가하지 않는다는 사실에서 문제가 발생한다는 것을 알 수 있습니다 -4
. 다음 줄을 참조하세요.
debug1: Sending command: scp -v -r /myFile user@host2:.
.
OpenSSH_7.6p1, OpenSSL 1.0.2n 7 Dec 2017
debug1: Reading configuration data /Users/user/.ssh/config
debug1: /Users/user/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /usr/local/etc/ssh/ssh_config
debug1: Connecting to host1 [a.b.c.d] port 22.
debug1: Connection established.
debug1: Local version string SSH-2.0-OpenSSH_7.6
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4p1 Debian-10+deb9u3
debug1: match: OpenSSH_7.4p1 Debian-10+deb9u3 pat OpenSSH* compat 0x04000000
debug1: Authenticating to host1:22 as 'user'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:/sfbwfbhwh/wsfgwhwthwth
debug1: Host 'host1' is known and matches the ECDSA host key.
debug1: Found key in /Users/user/.ssh/known_hosts:66
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
Authenticated to host1.com ([a.b.c.d]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype [email protected] want_reply 0
debug1: Requesting authentication agent forwarding.
debug1: Sending command: scp -v -r /myFile user@host2:.
Executing: program /usr/bin/ssh host host2, user user, command scp -v -r -t .
OpenSSH_7.4p1 Debian-10+deb9u3, OpenSSL 1.0.2l 25 May 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to host2 [a:b:c:d:e:f:g:h] port 22.
답변1
사용해 보세요::scp -4 -v -r -o "ForwardAgent=yes" user@host1:myFile [email protected]
여기서 defg는 호스트 2의 IPv4 주소입니다. DNS가 올바른 주소를 반환하는지 확인하세요.
답변2
이것은 트릭을 수행해야합니다. 내가 당신을 올바르게 이해했기를 바랍니다 :)
$ rsync -rav --ipv4 /tmp/f.txt someuser@dev1:/home/someuser
~에서man rsync
-v, --verbose increase verbosity
-a, --archive archive mode; same as -rlptgoD (no -H)
-r, --recursive recurse into directories
-4, --ipv4 prefer IPv4