ssh 连接的 MaxStartups 和 MaxSessions 配置参数?

ssh 连接的 MaxStartups 和 MaxSessions 配置参数?

当我在 上运行下面的 shell 脚本时,我正在从machineB和复制文件machineC到。machineAmachineA

如果文件不在那里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 设置得太低了。

但我的问题是,在哪台服务器上这个数字相当低?machineBmachineCmachineA? 我需要增加哪些机器上的数量?

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

machineBmachineC我所能找到的 -

[root@machineB ~]$ grep MaxStartups /etc/ssh/sshd_config
#MaxStartups 10

[root@machineB ~]$ grep MaxSessions /etc/ssh/sshd_config
#MaxSessions 10

答案1

我认为 10 个并行连接的负载对于 ssh 来说并不高。我假设您有无密码访问权限,请检查是否存在密钥问题

for i in `echo MachineA MachineB MachineC`
   do 
    echo testing $i
    ssh -v $i exit
  done

检查 MachineB 和 MachineC 上的 /etc/hosts.deny 和 /etc/hosts.allow 并查看是否允许来自 MachineA 的连接

相关内容