ssh
동기는 내가 들어갈 수 있는 서버가 있지만 (키 쌍이 있든 없든, 즉 비밀번호가 있든 없든) 을 통과 rsync
하거나 scp
에 파일을 보낼 수 없다는 것입니다 sftp
. 누군가 ssh와 파일 전송 프로토콜이 같은 포트를 사용하는지 확인해야 한다고 했는데 어떻게 확인해야 할지 모르겠습니다.
제가 어떻게 출근할지에 대한 다른 아이디어가 있으시면 알려 rsync
주시면 감사하겠습니다.
내가 실행하면 rsync -avvvvvPt ./ [USER]@[REMOTE]:.
다음을 얻습니다.
FILE_STRUCT_LEN=24, EXTRA_LEN=4
cmd=<NULL> machine=[REMOTE] user=[USER] path=.
cmd[0]=ssh cmd[1]=-l cmd[2]=[USER] cmd[3]=[REMOTE] cmd[4]=rsync cmd[5]=--server cmd[6]=-vvvvvlogDtpre.iLsfx cmd[7]=--partial cmd[8]=. cmd[9]=.
opening connection using: ssh -l [USER] [REMOTE] rsync --server -vvvvvlogDtpre.iLsfx --partial . . (10 args)
msg checking charset: UTF-8
그런 다음 까지 정지됩니다 ctrl-c
.
답변1
두 서버 모두 동일한 SSH 포트를 가지고 있어야 합니다.
한 서버의 포트가 22이고 다른 서버의 포트가 44인 경우 scp가 작동하지 않습니다.
답변2
ForceCommand
내 경우에는 원격 서버의 sshd 구성 파일에 설정된 지시문 이었습니다 /etc/ssh/sshd_config
. 주석을 달고 서버를 다시 로드한 후 제대로 작동하기 시작했습니다.
답변3
agrek의 요구에 따라 모두 사용 가능한 경우 포트의 .plist 파일을 확인할 수 있습니다.
터미널 프롬프트를 열고 실행하십시오 cat /System/Library/LaunchDaemons/ssh.plist
.
조금 아래로 스크롤하면 다음이 표시됩니다.
<key>Listeners</key> <dict> <key>SockServiceName</key> <string>ssh</string> <key>Bonjour</key> <array> <string>ssh</string> <string>sftp-ssh</string> </array> </dict>
<string>...<string>
당신이 원하는 것은 다음 과 같습니다 <Key> SockServiceName </key>
. 위와 같이 텍스트가 ssh인 경우 표준 포트인 포트 22를 사용합니다. 숫자인 경우 해당 숫자가 포트입니다.
Rsync over SSH는 SSH 터널을 통해 데이터를 보내는 것과 동일한 포트를 사용하고, iirc sftp 및 scp는 SSH 터널을 사용하므로 해당 포트는 SSH와 동일합니다.
원천: https://serverfault.com/questions/18761/how-to-change-sshd-port-on-mac-os-x
답변4
iconv 플래그 및 질문에 추가된 정보에 대한 자세한 내용을 읽은 후 새로운 답변을 얻으십시오.
FAQ에 따르면:http://rsync.samba.org/FAQ.html
적절한 --iconv 옵션을 rsync에 전달하여 문자 세트 문제를 피할 수 있습니다. 이 옵션은 소스 파일이 어떤 문자 세트에 있는지, 대상 파일이 어떤 문자 세트에 저장되어 있는지 알려줍니다. 예를 들어 위의 Mac OS X 문제는 --iconv=UTF-8,UTF8-MAC를 사용하여 처리됩니다(UTF8-MAC는 Mac OS에서 인식하는 의사 문자 집합입니다).
따라서 소스의 문자 집합이 무엇인지, 대상 컴퓨터의 운영 체제에서 사용하는 문자 집합이 무엇인지 알아내야 합니다.
빠른 참고 사항: @stefan은 파일이 크고 계산에 시간이 걸린다는 점에 대해 정확할 수도 있지만 이는 문자 집합이 아닌 해시 생성과 관련이 있으므로 중요하지 않습니다.