gitlab-ci: Add Ubuntu 32bit build
[socket_wrapper.git] / example / openssh.sh
1 #!/bin/bash
2
3 SSH_DIRECTORY=$(mktemp -d /tmp/tmp.swrap.XXXXXXXX)
4 SERVER_ADDRESS="127.0.0.10"
5 mkdir ${SSH_DIRECTORY}/swrap
6
7 cleanup_and_exit () {
8     trap EXIT
9     test -z "$1" && set 0
10
11     echo
12     echo "CLEANING UP"
13     echo
14
15     kill -TERM $(< ${SSH_DIRECTORY}/sshd.pid)
16     rm -rf ${SSH_DIRECTORY}
17
18     exit $1
19 }
20
21 # Setup exit handler
22 trap cleanup_and_exit SIGINT SIGTERM
23
24 echo Generating ${SSH_DIRECTORY}/ssh_host_key.
25 ssh-keygen -t rsa1 -b 2048 -f ${SSH_DIRECTORY}/ssh_host_key -N '' 2>/dev/null
26 echo Generating ${SSH_DIRECTORY}/ssh_host_dsa_key.
27 ssh-keygen -t dsa -f ${SSH_DIRECTORY}/ssh_host_dsa_key -N '' 2>/dev/null
28 echo Generating ${SSH_DIRECTORY}/ssh_host_rsa_key.
29 ssh-keygen -t rsa -b 2048 -f ${SSH_DIRECTORY}/ssh_host_rsa_key -N '' 2>/dev/null
30 #echo Generating ${SSH_DIRECTORY}/ssh_host_ecdsa_key.
31 #ssh-keygen -t ecdsa -b 256 -f ${SSH_DIRECTORY}/ssh_host_ecdsa_key -N '' 2>/dev/null
32
33 # Create sshd_config file
34 cat > ${SSH_DIRECTORY}/sshd_config << EOT
35 Port 22
36 ListenAddress ${SERVER_ADDRESS}
37 HostKey ${SSH_DIRECTORY}/ssh_host_key
38 HostKey ${SSH_DIRECTORY}/ssh_host_rsa_key
39 HostKey ${SSH_DIRECTORY}/ssh_host_dsa_key
40 #HostKey ${SSH_DIRECTORY}/ssh_host_ecdsa_key
41 Subsystem sftp /usr/lib/ssh/sftp-server
42
43 LogLevel DEBUG1
44
45 AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
46 AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
47 AcceptEnv LC_IDENTIFICATION LC_ALL
48
49 PidFile ${SSH_DIRECTORY}/sshd.pid
50 EOT
51
52 export SOCKET_WRAPPER_DIR="${SSH_DIRECTORY}/swrap"
53 export SOCKET_WRAPPER_DEFAULT_IFACE=11
54
55 echo
56 echo "Starting SSHD with SOCKET_WRAPPER_DIR=${SSH_DIRECTORY}/swrap ..."
57 DYLD_INSERT_LIBRARIES=libsocket_wrapper.dylib LD_PRELOAD=libsocket_wrapper.so /usr/sbin/sshd -f ${SSH_DIRECTORY}/sshd_config -e 2> ${SSH_DIRECTORY}/sshd_log || cleanup_and_exit 1
58 echo "done"
59
60 echo
61 echo "Connecting to the ${SERVER_ADDRESS} ssh server using ssh binary."
62 echo "You can check the sshd log file at ${SSH_DIRECTORY}/sshd_log."
63 echo "If you logout sshd will be stopped and the environment cleaned up."
64 DYLD_INSERT_LIBRARIES=libsocket_wrapper.dylib LD_PRELOAD=libsocket_wrapper.so ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ${SERVER_ADDRESS}
65
66 cleanup_and_exit 0