Docker: Jenkins master容器內ssh無法訪問slalve問題(SSH2_MSG_KEX_ECDH_REPLY)
一、問題(SSH2_MSG_KEX_ECDH_REPLY)
- 環境:centos 7, docker 19.03.8
- 現象:master容器可以ping通slave IP, 但是ssh失敗。ssh -vvv顯示報錯:debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
二、原因
因爲兩臺服務器在不同網段,通過VPN訪問。VPN中MTU最大值是1200,而默認MTU是1500。需修改其值。
三、配置Docker
在Jenkins容器的外層主機(docker服務器)中,添加如下內容到/etc/docker/daemon.json,並重啓docker服務器:
# vim /etc/docker/daemon.json
{
"mtu": 1200
}
# sudo systemctl restart docker
# sudo docker exec -it xxx bash
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
169: eth0@if170: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1200 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
問題解決,成功ssh到slave。