sh SHELL:管理SSH密钥创建和分发:对于GitHub,自动登录远程实例,....
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh SHELL:管理SSH密钥创建和分发:对于GitHub,自动登录远程实例,....相关的知识,希望对你有一定的参考价值。
#!/bin/bash
DEBUG=false
OPTIND=1
PASSPHRASE=""
show_help() {
cat << EOF
Usage: ${0##*/} [-hp] [-f OUTPUTFILE] [-r REMOTE_HOST] [-c COMMENT]
Generate SSH key and copy it to remote if needed.
-h display this help
-r REMOTE_HOST send file to remote host
-f OUTPUTFILE output filename
-c COMMENT ssh key comment
-p optional ssh passphrase
EOF
}
while getopts hpr:f:c: opt; do
case $opt in
h) show_help
exit 0
;;
r) REMOTE_HOST=$OPTARG
;;
f) OUTPUTFILE=$OPTARG
;;
c) COMMENT=$OPTARG
;;
p) printf "Enter passphrase [none]: "
read -r PASSPHRASE
;;
*) show_help >&2
exit 1
;;
esac
done
if [ $OPTIND -eq 1 ]; then
show_help
exit 0
fi
shift "$((OPTIND-1))"
if [ -f "$OUTPUTFILE" ]
then
echo "File $OUTPUTFILE does exist"
exit 0
fi
if [ -z ${COMMENT} ];
then
echo Running: ssh-keygen -q -t rsa -b 4096 -f ${OUTPUTFILE} -N \"$PASSPHRASE\"
if ! $DEBUG ; then ssh-keygen -q -t rsa -b 4096 -C "${COMMENT}" -f ${OUTPUTFILE} -N \"$PASSPHRASE\" ; fi
else
echo Running: ssh-keygen -q -t rsa -b 4096 -C "${COMMENT}" -f ${OUTPUTFILE} -N \"$PASSPHRASE\"
if ! $DEBUG ; then ssh-keygen -q -t rsa -b 4096 -C "${COMMENT}" -f ${OUTPUTFILE} -N \"$PASSPHRASE\" ; fi
fi
echo Running: ssh-agent
if ! $DEBUG ; then eval "$(ssh-agent -s)" ; fi
echo Running: ssh-add ${OUTPUTFILE}
if ! $DEBUG ; then ssh-add $OUTPUTFILE ; fi
if [ ! -z ${REMOTE_HOST} ];
then
echo Running: ssh-copy-id -i ${OUTPUTFILE} ${REMOTE_HOST}
if ! $DEBUG ; then ssh-copy-id -i $OUTPUT_FILE $REMOTE_HOST ; fi
fi
# END
以上是关于sh SHELL:管理SSH密钥创建和分发:对于GitHub,自动登录远程实例,....的主要内容,如果未能解决你的问题,请参考以下文章
手工开发SSH-KEY工具(分发密钥批量执行分发文件)
linux下SSH服务利用shell脚本实现密钥的批量分发与执行
sh [复制ssh密钥]将ssh密钥复制到服务器#shell #terminal
linux-shell系列7-ssh密匙生成分发
linux服务器密钥分发
ssh密钥分发与ansible部署指南