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は、ファイルが大きく、計算に時間がかかるという点で正確かもしれませんが、これは文字セットではなくハッシュ生成に関連しているため重要ではありません。