Linux
ssh 連接的 MaxStartups 和 MaxSessions 配置參數?
當我在.
machineB
_machineC``machineA``machineA
如果文件不在那裡,
machineB
那麼它肯定應該在那裡,machineC
所以我會先嘗試從那裡複製文件machineB
,如果它不在那裡,machineB
那麼我會嘗試從machineC
.我正在使用 GNU Parallel 庫並行複製文件,它工作正常。目前我正在並行複制 10 個文件。
下面是我的shell腳本 -
#!/bin/bash export PRIMARY=/test01/primary export SECONDARY=/test02/secondary readonly FILERS_LOCATION=(machineB machineC) export FILERS_LOCATION_1=${FILERS_LOCATION[0]} export FILERS_LOCATION_2=${FILERS_LOCATION[1]} PRIMARY_PARTITION=(550 274 2 546 278) # this will have more file numbers SECONDARY_PARTITION=(1643 1103 1372 1096 1369 1568) # this will have more file numbers export dir3=/testing/snapshot/20140103 find "$PRIMARY" -mindepth 1 -delete find "$SECONDARY" -mindepth 1 -delete do_Copy() { el=$1 PRIMSEC=$2 scp david@$FILERS_LOCATION_1:$dir3/new_weekly_2014_"$el"_200003_5.data $PRIMSEC/. || scp david@$FILERS_LOCATION_2:$dir3/new_weekly_2014_"$el"_200003_5.data $PRIMSEC/. } export -f do_Copy parallel --retries 10 -j 10 do_Copy {} $PRIMARY ::: "${PRIMARY_PARTITION[@]}" & parallel --retries 10 -j 10 do_Copy {} $SECONDARY ::: "${SECONDARY_PARTITION[@]}" & wait echo "All files copied."
問題陳述:-
在某些時候(不是每次)使用上面的腳本,我得到了這個異常 -
ssh_exchange_identification: Connection closed by remote host ssh_exchange_identification: Connection closed by remote host ssh_exchange_identification: Connection closed by remote host
我猜這個錯誤通常是由太多的 ssh/scp 同時啟動引起的。這讓我相信 /etc/ssh/sshd_config:MaxStartups 和 MaxSessions 設置得太低了。
但我的問題是在哪個伺服器上它很低?
machineB
和machineC
或machineA
? 我需要在哪些機器上增加數量?
machineA
這就是我能找到的,它們都被註釋掉了——root@machineA:/home/david# grep MaxStartups /etc/ssh/sshd_config #MaxStartups 10:30:60 root@machineA:/home/david# grep MaxSessions /etc/ssh/sshd_config
等等
machineB
,machineC
這就是我能找到的——[root@machineB ~]$ grep MaxStartups /etc/ssh/sshd_config #MaxStartups 10 [root@machineB ~]$ grep MaxSessions /etc/ssh/sshd_config #MaxSessions 10
如果我正確理解了這段程式碼,我相信這是你的問題:
do_Copy() { el=$1 PRIMSEC=$2 scp david@$FILERS_LOCATION_1:$dir3/new_weekly_2014_"$el"_200003_5.data \ $PRIMSEC/. || \ scp david@$FILERS_LOCATION_2:$dir3/new_weekly_2014_"$el"_200003_5.data \ $PRIMSEC/. } export -f do_Copy parallel --retries 10 -j 10 do_Copy {} \ $PRIMARY ::: "${PRIMARY_PARTITION[@]}" & parallel --retries 10 -j 10 do_Copy {} \ $SECONDARY ::: "${SECONDARY_PARTITION[@]}" & wait
您正在
scp
並行執行 20 個,但機器 B 和 C 每個只能處理 10 個:#MaxStartups 10
我會撥回那些平行線說5,看看是否能解決你的問題。如果您想增加
MaxStartups
機器 B 和 C 的數量,您也可以這樣做:MaxStartups 15
並確保
sshd
在 B 和 C 上重新啟動服務:$ sudo service sshd restart
確認配置文件修改
您可以通過開關
sshd
在測試模式下執行來仔細檢查它們是否正常工作。-T
$ sudo /usr/sbin/sshd -T | grep -i max maxauthtries 6 maxsessions 10 clientalivecountmax 3 maxstartups 10:30:100