Si desea tener set -e
en un shell interactivo y desea ejecutar un comando que puede devolver un valor distinto de cero, debe capturar ese código de salida. Un método:
$ some_command || :
Otro:
$ if ! some_command; then :; fi
Проблема заключалась в том, что открытый/закрытый ключи не совпадали в клиентской системе . Я исправил это, запустив:
$ cd ~/.ssh
$ ssh-keygen -y -f id_rsa > id_rsa.pub
Это сгенерирует открытый ключ, соответствующий существующему закрытому ключу, и запишет его в файл id_rsa.pub
, тем самым снова сопоставив открытый и закрытый ключи.
Я не смог найти ответ на свою проблему в нескольких ответах на Stack Exchange, которые я нашел, поэтому решил задать/ответить на свой вопрос здесь. Как это произошло? Случилось так, что в прошлом у меня работали SSH-ключи, но в какой-то момент я снова случайно запустил ssh-keygen
. Это создало новую пару открытых/закрытых ключей. Я понял это и попытался исправить это, вернув свои старые закрытые ключи. Поскольку на сервере все еще был старый публичный ключ в файле authorized_keys
, там ничего не нужно было менять. К сожалению, я не изменил открытый ключ на стороне клиента, что привело к текущей ситуации.