Я нашел решение этой проблемы (извините за ответ на мой собственный вопрос ). Я отвечаю на него, потому что если у кого-то есть эта проблема, он / она может использовать решение, которое я нашел.
На самом деле проблема возникает как на стороне сервера, так и на стороне клиента.
Проблема на стороне сервера заключалась в том, что /home/<user>/.ssh/known_hosts
файл на сервере имел неверную запись для установки Ubuntu, так как обе операционные системы имели одинаковый идентификатор оборудования и один и тот же IP-адрес (статический IP-адрес ), но разные ключи.
Вот что я сделал:
ssh-keygen -f /home/<user>/.ssh/known_hosts -R ip.ip.ip.ip
В моем случае ip.ip.ip.ip — это статический общедоступный IP-адрес моей сети. Выполните эту команду как на сервере, так и на клиентской машине, где ip.ip.ip.ip соответственно изменится.
Я не знаю, что делает эта команда (Я нашел это решение с помощью поиска в Google / пробной версии -ошибка)
Вы также можете скопировать известный _файл hosts клиентских машин на другие клиентские машины или операционные системы.
Извините за мой плохой английский.
И если кто-нибудь знает, что делает эта команда и почему эта команда решила проблему, пожалуйста, сообщите нам! Спасибо.
Бинго решено!
Учитывая приведенный ниже шаблон сценария bash --, вы можете либо
--start
и --stop
для установки переменных и использования их в операторе if -. start
или stop
в ${remaining_args[@]}
, а затем использовать эту информацию:if printf '%s\n' ${remaining_args[@]} | grep -Pq '^start$' ; then
start your app
elif printf '%s\n' ${remaining_args[@]} | grep -Pq '^stop$' ; then
stop your app
fi
А вот и шаблон:
#!/bin/bash -
#===============================================================================
#
# FILE: <filename here>
#
# DESCRIPTION:
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR:
# ORGANIZATION:
# CREATED:
# LICENSE:
# REVISION: ---
#===============================================================================
#=== Init ======================================================================
set -o nounset # exit on unset variables.
set -o errexit # exit on any error.
set -o errtrace # any trap on ERR is inherited
#set -o xtrace # show expanded command before execution.
unalias -a # avoid rm being aliased to rm -rf and similar issues
LANG=C # avoid locale issues
VERBOSE= # Don't be verbose, unless given '-v'-option
ScriptVersion="1.0"
trap "cleanup" EXIT SIGTERM SIGINT
#=== Functions =================================================================
usage () {
echo "
Usage : ${0##/*/} [options] [--]
Options:
-h|--help Display this message
-V|--version Display script version
-v|--verbose Print informational text
"
exit 0
} # ---------- end of function usage ----------
option_handling () {
# see /usr/share/doc/util-linux/examples/getopt-parse.bash
OPTS=$(getopt --name "$0" \
--options 'hVv' \
--longoptions 'help,version,verbose' \
--shell bash \
-- "$@") \
|| (echo; echo "See above and try \"$0 --help\""; echo ; exit 1)
eval set -- "$OPTS"
unset OPTS
while true ; do
case "$1" in
-h|--help)
usage
;;
-V|--version)
echo "$0 -- Version $ScriptVersion"; exit 0
;;
-v|--verbose)
VERBOSE=true
shift
;;
--)
shift ; break
;;
*)
echo 'This should not have happened. Probably getopt is misconfigured.'
exit 2
;;
esac
done
remaining_args=( "$@" )
} # ---------- end of function option_handling ----------
_verbose () { # printf '%s\n' if VERBOSE, be silent otherwise
if [[ ${VERBOSE} ]]; then
_verbose() {
printf '%s\n' "$@"
}
_verbose "$@"
else
_verbose() {
:
}
fi
} # ---------- end of function _verbose ----------
cleanup () { # Will be called by the trap above, no need to call it manually.
:
} # ---------- end of function cleanup ----------
# here you could source your scripting-libraries
# and make use of flatten.sh later.
# see https://github.com/markgraf/flatten.sh.git
#=== Main ======================================================================
main () {
option_handling "$@"
# Your script goes here...
} # ---------- end of function main ----------
main "$@"
#=== End =======================================================================