⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test-exec.sh

📁 OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。它用安全、加密的网络连接工具代替了 telnet、ftp、 rlogin、rsh 和 rcp 工具。OpenSSH 支持
💻 SH
字号:
#	$OpenBSD: test-exec.sh,v 1.27 2005/02/27 11:33:30 dtucker Exp $#	Placed in the Public Domain.#SUDO=sudo# Unbreak GNU head(1)_POSIX2_VERSION=199209export _POSIX2_VERSIONcase `uname -s 2>/dev/null` inOSF1*)	BIN_SH=xpg4	export BIN_SH	;;esacif [ ! -z "$TEST_SSH_PORT" ]; then	PORT="$TEST_SSH_PORT"else	PORT=4242fiif [ -x /usr/ucb/whoami ]; then	USER=`/usr/ucb/whoami`elif whoami >/dev/null 2>&1; then	USER=`whoami`else	USER=`id -un`fiOBJ=$1if [ "x$OBJ" = "x" ]; then	echo '$OBJ not defined'	exit 2fiif [ ! -d $OBJ ]; then	echo "not a directory: $OBJ"	exit 2fiSCRIPT=$2if [ "x$SCRIPT" = "x" ]; then	echo '$SCRIPT not defined'	exit 2fiif [ ! -f $SCRIPT ]; then	echo "not a file: $SCRIPT"	exit 2fiif $TEST_SHELL -n $SCRIPT; then	trueelse	echo "syntax error in $SCRIPT"	exit 2fiunset SSH_AUTH_SOCKSRC=`dirname ${SCRIPT}`# defaultsSSH=sshSSHD=sshdSSHAGENT=ssh-agentSSHADD=ssh-addSSHKEYGEN=ssh-keygenSSHKEYSCAN=ssh-keyscanSFTP=sftpSFTPSERVER=/usr/libexec/openssh/sftp-serverSCP=scpif [ "x$TEST_SSH_SSH" != "x" ]; then	SSH="${TEST_SSH_SSH}"fiif [ "x$TEST_SSH_SSHD" != "x" ]; then	SSHD="${TEST_SSH_SSHD}"fiif [ "x$TEST_SSH_SSHAGENT" != "x" ]; then	SSHAGENT="${TEST_SSH_SSHAGENT}"fiif [ "x$TEST_SSH_SSHADD" != "x" ]; then	SSHADD="${TEST_SSH_SSHADD}"fiif [ "x$TEST_SSH_SSHKEYGEN" != "x" ]; then	SSHKEYGEN="${TEST_SSH_SSHKEYGEN}"fiif [ "x$TEST_SSH_SSHKEYSCAN" != "x" ]; then	SSHKEYSCAN="${TEST_SSH_SSHKEYSCAN}"fiif [ "x$TEST_SSH_SFTP" != "x" ]; then	SFTP="${TEST_SSH_SFTP}"fiif [ "x$TEST_SSH_SFTPSERVER" != "x" ]; then	SFTPSERVER="${TEST_SSH_SFTPSERVER}"fiif [ "x$TEST_SSH_SCP" != "x" ]; then	SCP="${TEST_SSH_SCP}"fi# Path to sshd must be absolute for rexecif [ ! -x /$SSHD ]; then	SSHD=`which sshd`fiif [ "x$TEST_SSH_LOGFILE" = "x" ]; then	TEST_SSH_LOGFILE=/dev/nullfi# these should be used in testsexport SSH SSHD SSHAGENT SSHADD SSHKEYGEN SSHKEYSCAN SFTP SFTPSERVER SCP#echo $SSH $SSHD $SSHAGENT $SSHADD $SSHKEYGEN $SSHKEYSCAN $SFTP $SFTPSERVER $SCP# helperechon(){       if [ "x`echo -n`" = "x" ]; then               echo -n "$@"       elif [ "x`echo '\c'`" = "x" ]; then               echo "$@\c"       else               fatal "Don't know how to echo without newline."       fi}have_prog(){	saved_IFS="$IFS"	IFS=":"	for i in $PATH	do		if [ -x $i/$1 ]; then			IFS="$saved_IFS"			return 0		fi	done	IFS="$saved_IFS"	return 1}cleanup (){	if [ -f $PIDFILE ]; then		pid=`cat $PIDFILE`		if [ "X$pid" = "X" ]; then			echo no sshd running		else			if [ $pid -lt 2 ]; then				echo bad pid for ssd: $pid			else				$SUDO kill $pid			fi		fi	fi}trace (){	echo "trace: $@" >>$TEST_SSH_LOGFILE	if [ "X$TEST_SSH_TRACE" = "Xyes" ]; then		echo "$@"	fi}verbose (){	echo "verbose: $@" >>$TEST_SSH_LOGFILE	if [ "X$TEST_SSH_QUIET" != "Xyes" ]; then		echo "$@"	fi}fail (){	echo "FAIL: $@" >>$TEST_SSH_LOGFILE	RESULT=1	echo "$@"}fatal (){	echo "FATAL: $@" >>$TEST_SSH_LOGFILE	echon "FATAL: "	fail "$@"	cleanup	exit $RESULT}RESULT=0PIDFILE=$OBJ/pidfiletrap fatal 3 2# create server configcat << EOF > $OBJ/sshd_config	StrictModes		no	Port			$PORT	ListenAddress		127.0.0.1	#ListenAddress		::1	PidFile			$PIDFILE	AuthorizedKeysFile	$OBJ/authorized_keys_%u	LogLevel		DEBUG	AcceptEnv		_XXX_TEST_*	AcceptEnv		_XXX_TEST	Subsystem	sftp	$SFTPSERVEREOFif [ ! -z "$TEST_SSH_SSHD_CONFOPTS" ]; then	trace "adding sshd_config option $TEST_SSH_SSHD_CONFOPTS"	echo "$TEST_SSH_SSHD_CONFOPTS" >> $OBJ/sshd_configfi# server config for proxy connectscp $OBJ/sshd_config $OBJ/sshd_proxy# allow group-writable directories in proxy-modeecho 'StrictModes no' >> $OBJ/sshd_proxy# create client configcat << EOF > $OBJ/ssh_configHost *	Hostname		127.0.0.1	HostKeyAlias		localhost-with-alias	Port			$PORT	User			$USER	GlobalKnownHostsFile	$OBJ/known_hosts	UserKnownHostsFile	$OBJ/known_hosts	RSAAuthentication	yes	PubkeyAuthentication	yes	ChallengeResponseAuthentication	no	HostbasedAuthentication	no	PasswordAuthentication	no	BatchMode		yes	StrictHostKeyChecking	yesEOFif [ ! -z "$TEST_SSH_SSH_CONFOPTS" ]; then	trace "adding ssh_config option $TEST_SSH_SSHD_CONFOPTS"	echo "$TEST_SSH_SSH_CONFOPTS" >> $OBJ/ssh_configfirm -f $OBJ/known_hosts $OBJ/authorized_keys_$USERtrace "generate keys"for t in rsa rsa1; do	# generate user key	rm -f $OBJ/$t	${SSHKEYGEN} -q -N '' -t $t  -f $OBJ/$t ||\		fail "ssh-keygen for $t failed"	# known hosts file for client	(		echon 'localhost-with-alias,127.0.0.1,::1 '		cat $OBJ/$t.pub	) >> $OBJ/known_hosts	# setup authorized keys	cat $OBJ/$t.pub >> $OBJ/authorized_keys_$USER	echo IdentityFile $OBJ/$t >> $OBJ/ssh_config	# use key as host key, too	$SUDO cp $OBJ/$t $OBJ/host.$t	echo HostKey $OBJ/host.$t >> $OBJ/sshd_config	# don't use SUDO for proxy connect	echo HostKey $OBJ/$t >> $OBJ/sshd_proxydonechmod 644 $OBJ/authorized_keys_$USER# create a proxy version of the client config(	cat $OBJ/ssh_config	echo proxycommand ${SUDO} sh ${SRC}/sshd-log-wrapper.sh ${SSHD} ${TEST_SSH_LOGFILE} -i -f $OBJ/sshd_proxy) > $OBJ/ssh_proxy# check proxy config${SSHD} -t -f $OBJ/sshd_proxy	|| fatal "sshd_proxy broken"start_sshd (){	# start sshd	$SUDO ${SSHD} -f $OBJ/sshd_config -t	|| fatal "sshd_config broken"	$SUDO ${SSHD} -f $OBJ/sshd_config -e >>$TEST_SSH_LOGFILE 2>&1	trace "wait for sshd"	i=0;	while [ ! -f $PIDFILE -a $i -lt 10 ]; do		i=`expr $i + 1`		sleep $i	done	test -f $PIDFILE || fatal "no sshd running on port $PORT"}# source test body. $SCRIPT# kill sshdcleanupif [ $RESULT -eq 0 ]; then	verbose ok $tidelse	echo failed $tidfiexit $RESULT

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -