Моя проблема заключалась в наличии нескольких записей с одного хоста с разными ключами хоста. Это было от раба сборки Дженкинса. Сервер приложений был перестроен. Имя хоста/IP было перенесено на новый сервер, но ключи хоста были другими. Вот один лайнер, который я придумал:
cat known_hosts | cut -f1 -d' ' | sort | uniq -c | \
sed '/^ *1 /d' | awk '{print $2}' | while read line; do \
ssh-keygen -R $line; ssh-keyscan $line; \
done
Возьмите первое поле в известных _хостах, отсортируйте его, uniq -c
для подсчета экземпляров каждого имени хоста, sed
для удаления всех строк со значением 1, затем ssh-keygen -R
для удаления хоста и наконец, ssh-keyscan
, чтобы добавить ключ текущего хоста -обратно к известным _хостам.
ПРЕДУПРЕЖДЕНИЕ :Если вы не ожидали, что ключи хоста изменятся, вам следует выяснить, почему они изменились, прежде чем запускать это. Ключи хоста предназначены для того, чтобы убедиться, что вы подключаетесь к хосту, который вы ожидаете (, а не к какому-то промежуточному хосту ).
Удалите это разрешение S , поскольку его использование опасно с точки зрения безопасности.
Здесь вы найдете, как это сделать:https://stackoverflow.com/questions/3626460/linux-ubuntu-9-04-permissions-how-do-i-remove-rws
Затем попробуйте изменить разрешение, используя chmod g+w еще раз.