aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitch Riedstra <mitch@riedstra.us>2015-12-28 13:52:48 -0500
committerMitch Riedstra <mitch@riedstra.us>2015-12-28 13:52:48 -0500
commitd32ab30dc3611481cb55ce7b18bb1a80352f9146 (patch)
tree0b3ee3c8fefbfc8dfa98349bb22fc9ca1358137a
downloaddotfiles-d32ab30dc3611481cb55ce7b18bb1a80352f9146.tar.gz
dotfiles-d32ab30dc3611481cb55ce7b18bb1a80352f9146.tar.xz
Initial
-rw-r--r--backup.sh46
-rw-r--r--gitconfig6
-rw-r--r--keyCheck.sh24
-rw-r--r--keys/all7
-rw-r--r--keys/old/personal3
-rw-r--r--keys/old/yac5
-rw-r--r--keys/personal4
l---------keys/personal.txt1
-rw-r--r--keys/yac3
-rw-r--r--login_conf6
-rw-r--r--mkshrc587
-rw-r--r--openvpn.conf293
-rw-r--r--openvpn_client.conf123
-rw-r--r--php-pkgs53
-rw-r--r--ssh/config135
-rw-r--r--tmux.conf39
-rw-r--r--vim.txzbin0 -> 380436 bytes
-rw-r--r--vim2.txzbin0 -> 306036 bytes
18 files changed, 1335 insertions, 0 deletions
diff --git a/backup.sh b/backup.sh
new file mode 100644
index 0000000..1f0334e
--- /dev/null
+++ b/backup.sh
@@ -0,0 +1,46 @@
+#!/bin/sh
+# Backup script in less than 50 lines
+_dir="/backups/servers" hostname="" ssh_opts="" rsync_opts="" log=0 _pth="" _exc="exclude"
+logdir="/var/log/backups" log_fmt="+%m.%d.%y_.%H.%M.%S"
+if [ -z $_dir ] ; then
+ echo "You need to setup a base backup directory"
+fi
+while [ $# -gt 0 ] ; do case $1 in
+ -h) hostname="$2"; shift; shift; ;;
+ -n) rsync_opts="${rsync_opts}n"; shift; ;;
+ -l) log=1; shift; ;; -lt) log=2; shift; ;;
+ -e) _exc="$2"; shift; shift; ;;
+ -p) _pth="$2"; shift; shift; ;;
+ *) echo "Unknown option: $1"; exit 1; shift; ;;
+esac done
+if [ -z $hostname ] ; then
+ echo "Yo, you need to set a hostname"; exit 1;
+fi
+files="exclude key"
+for _file in $files ; do
+ if ! [ -f $_dir/$hostname/$_file ] ; then
+ echo "Can't find file: $_dir/$hostname/$_file"; exit 1;
+ fi
+done
+directories="content"
+for _directory in $directories ; do
+ if ! [ -d $_dir/$hostname/$_directory ] ; then
+ echo "Can't find dir: $_dir/$hostname/$_directory"; exit 1;
+ fi
+done
+if [ -e $_dir/$hostname/cfg ] ; then . $_dir/$hostname/cfg; fi
+if ! [ -d $logdir ] ; then mkdir $logdir ; fi
+
+log_file="$logdir/${hostname}.$(date $log_fmt).log"
+if ! [ -z $_pth ] ; then log_file="$logdir/${hostname}.$_pth.$(date $log_fmt).log" ; fi
+backup() {
+ rsync -avzHP$rsync_opts --numeric-ids --delete --exclude-from="$_dir/$hostname/$_exc" \
+ -e "ssh -i $_dir/$hostname/key $ssh_opts" "root@$hostname:/$_pth" "$_dir/$hostname/content/$_pth";
+}
+if [ $log -eq 2 ] ; then
+ backup | tee $log_file;
+elif [ $log -eq 1 ] ; then
+ backup >> $log_file;
+else
+ backup;
+fi
diff --git a/gitconfig b/gitconfig
new file mode 100644
index 0000000..d5663ce
--- /dev/null
+++ b/gitconfig
@@ -0,0 +1,6 @@
+[user]
+ email = mitch@riedstra.us
+ name = Mitch Riedstra
+[alias]
+ hist = log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
+ histv = log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short --stat
diff --git a/keyCheck.sh b/keyCheck.sh
new file mode 100644
index 0000000..2293b3c
--- /dev/null
+++ b/keyCheck.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+# Check for a public key, and create one for the user if it
+# does not exist. Spit the key in red to stdout
+
+# Really useful for people running MacOS
+
+# One line version to paste in a chat or so
+# if [ -e ~/.ssh/id_rsa.pub ] ; then echo $'\033[1;31m' ; cat ~/.ssh/id_rsa.pub ; echo $'\033[0m' ; else ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -t rsa -P ""; echo $'\033[1;31m' ; cat ~/.ssh/id_rsa.pub ; echo $'\033[0m'; fi
+
+if [ -e ~/.ssh/id_rsa.pub ] ; then
+ echo $'\033[1;31m'
+ cat ~/.ssh/id_rsa.pub
+ echo $'\033[0m'
+else
+ ssh-keygen \
+ -t rsa \
+ -b 4096 \
+ -f ~/.ssh/id_rsa \
+ -P ""
+ echo $'\033[1;31m'
+ cat ~/.ssh/id_rsa.pub
+ echo $'\033[0m'
+fi
diff --git a/keys/all b/keys/all
new file mode 100644
index 0000000..6734e72
--- /dev/null
+++ b/keys/all
@@ -0,0 +1,7 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCw3Q6R8S5wfHGwpbt20CaV0GKbb6+yHSeVQgiVhHsVQ7jPzRc1S3cxxWCX8QxYNVRzODCpEO/JtSVb4phKCfXyYTy1RvrNQ8fzfR1q7lFMcbTSTYKoORjP/k2NStEFhvH1/hw16jlYp99aKJiyIkQXE7HSrSjade+AdKZOANbSfAgH5C2AF8clIHWkx69RlOBOWkAm7CZyxmTt6PZR3S6lIojRGwQU4lq4jvJ/AboXiwPVxBLASH0kVZDcYyeUliHS9evxgiS+4v4ZlNKxgeLibSkffnar+yffmWEtRWs3LS+/zT2zLQjWyyZ3ogmJ43X4tK4noQIUUECweyOeqqdwS1qeWCixCc9oUvvShx9n99TElnI7ZWFRv5l6mtdi6f0G0rEL3iYDUYK4Jhw7y0WFT248h65AOjZaMFmkbjYIXVlQ+jfQjUOVmB+SpO8811IWBPe4EV2FqZjf2pYiF19L8RsjeVQBS0tt+4dAg72JhRc4BlDTMQLsCxI2EsI9zOyGJHmRufz1z4WWMjQVr47pkTv6CqPYYElbhBUaeT+Jq+jczG3HFhGAV5R0PFutkXP1743wQfnXxfwogq8dx5lakZc5+DMA4ppbjOyAnrx9ZL0m/aQ+lCmNNPWOlK8JyUqTJKGW1euS5xZkWadV2PrEz2+PiJK8cHXjtYwUUCy5Tw== MainBSD Key
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDWGdnxQksRp8jTIMSdsHDoaTObj4EJqRWqOqJa30WGOgAzXTpr3R5KCj/T5IqKiOvjAVRwdi4XtCtXidElAT+iDyAkONb8oe+JiJEqhDDxDhkkRGV6AS4N2w4kGH3Hcq3+qIs5o96YdiC7Q1fahs24gxQ7O/wjrkoZLaKTEL7F1R8LZAKuVzeqKWzf7T9GOau2vUCm0OV/ehqx6wQhHWJWUEcoo3W5yjMporZ0AqBgk/KOIWACu8Qw8+AkvWDwYUNTrtzWB5zyQ0MoNlCo7q7f7/eTl0nFJWG3g0/6IVOPbvAUWK30a8w1heP2fMOaIBPlNOL1Op9SOgfuViko2DKQVPiirLryTkhUVntuVGUUpbC6ySMgfzZfJSTAaiFyr089ryZlBownir7O8KtgJldi8t/8MjA4XeKZx77E+/vYGCrkZOR6gmavMOZE/VGg2pxkl+OH9rs79a9kTNEH9bxV08BPZ7c5F1mHrsLu/qziVv+ans7VgdvdiCGOrnzKtXB9jDP7plIHz3ODDggz5BhkKe2xifiTCrSTEeUTmJtV/zdG2R5Sc9SYnJVEy3SvqTS4FjCwbnr0fW1FS7D2R8rlKld5hZfDTlsWOLohHlmgdIa+lhPswYAnQb6SoOL1b3c96slDRQdVsQ3Kw8j0xlP1+1HuRgEW9e/3f4WDAUsBZw== System76 Laptop
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDNH0qfUtX4BLuqyzJpGqlYzUcrH44Z1FpGK4b4n0WWQROWJgb9jgwTkKmnWSu1M5s/j+bS5zfgf+72SCDqgb+dZyDgDnMnC1dEj+SWJPpYMNtMWka/UaGD1rptqgGd5JtRrKo7LfEkfiP57ACWgLbhJtKlQhSILIpCwXZsNIlQVkl0jOkiUTMq/d+O9Plv9nmSnNtD+ohkvrMXUcTzyRlC6JEaZUfbWByVSNFsdaNbt7OUdM4/GON1WrezJ2apQWjDos5UFj/+eY8GKpNjmaBVcg0M6T16G2VosnXfi1wV7SquzCI+qDDNUKMFAdYctidja8EZ0m6bMuZ+3TgOm8p8MYCpWBuleQuq7KU2MBZTe/qQdvQ5ywDSlHEdQBorNvVf1JIqcYoruzCswXn6uQ6rsziqzUfB1dhHVHsgS9YhSaMIG5onquorOR/CRvOATaE7e/MlW89iDYKCS/Sche0I4tEXKOmm22Vf/K1NmxsuA/2Zm9i3AOaFXNxd7R8F6aqdqzFsUDQ1TykkKGPgxWTx1TthaFa9+bHN0VagjdP5sjF2cP39PduN9DQPCjQGB24R3iyB20UzSTrxrfChB/TNmbaiLHHZfZpAjoPdpQWUwIRgY3Qum6huLlOtd+545udHngZ3wDZOBl7wKFV71I7NnP2XV65dLqIGm8d3DIea1w== Work Computer ( Desktop )
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDi+iJywox5UxRYou9ShwZP5MgtiOQJ7SRS5FdDCD5BWmqyZHyxf2lYz/EUtMZG48H/zVmEzyVAhUMcO6bDQqFXx6VTrXBk33Ar7vceqbRypzqI2ExM0vmWwXOSUBBWfhoSu3JKFeoXGB2ATHrQdhipP4Fttbd+6lA913962PF6RNjq93D6xAsHiq98aIV24jKogoCZZXcnzaObs8hC7aX38J7Lpl/8BYuOyFSWHRUWWITSlh35rfCAGhoRVvWS5idCI50bl/318rABGwkKm5HR3TGp467ds9M5Ngy2i8GvjvuuRy4lZ3bNZdBf0KicYSch/nuUCJktOYt9Od3qmLRP Alienware Laptop key
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC/HijxbReCZPshYjErBZokaAUnu+UmXhhf1BbnLrwk+XbgEa+d2EK7VM9EwkQmuTw1Z0+Ug/ZnyoD4mB0KGY4ozBgnDCUMKbO4wVPJ7mN4dints5im/quxLECQkbnM2Tz4WJ2kyHZ+JVkvEXOLpzt0xKrEGL0GZXbfHq8+a97IJK84Pk8DxnvXagZTK9K5ESepd5Gdc2Ayoqw9+6aY3fmN1JuVglb1kRaG/Bt1YFngWDsqYHCqGIE+KjCXWtPgohFQPS/GUkMuD8+9//zIbe7d+AOzXowIattlIbkdhm9TW21FS3nEDSFdTqReqRPDnlIDz+ObRvBk/DrHMsiqeAU/36xBkJhp7+KY0ehJU6EFBObX40S9ClN37kwG8ZbU0LsYaesrCejCPSnX1mj71BUkCgVUBGOTRd0yU/Fto2n4dpgHMDgEyO4g0lY07UMXyV7zpbnURZxor+4JcvYviCd9ESr48lDDwB1UB0Z9VnYlLtZ7Mr1R/yaY6543UVl+q6BbXNmlcGDT/CZR9WNxq6WdtJ+p4pcgRQBCzUElEtRCNAdCHJqkpStkAnOz/lEEAxylHRTTzWBOc3dveRQSwswwexpcUXrxiVYNGpZO/WyrYnlaRQe7EMiOF2uZ537CpRgjUxnrbrixXepF5cBpJXkWHorbhAB/1L4xg3wgoSywTw== Development Virtual Machine
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5kqfvo1MjN8ymzy1T0KsPeYhKTcR7/78XLk0fXNX54lijafPHk+nDJsSxuI9S4bDUy9DIVSMA1fDo9hoFSZ1+x35Clg4w7bFmHTnbOXhA92i6vGkQL+HudzSiZxFotJfbcC0GV9CkHjsh9vL/OfxxnTzHcmUspY8TdEaRChSLB3HB7g6vlok3VuZCR+deO93XbN2HW02SGEZqwi2K71KbijEY1uNHcWMDSxh1vjVcEKNtLnun3FO/ekM73Vxs+YIKru5iIZoP3WA+XeBT+JW4MTf47FQ1LB3/+Tw10CcYhaS/uGk3wLj6bjs88mwMGk48ggGZ0fkl8e0k3dICKxtHwySjbmEZQB7DNjvJn7W51wtCU/FhGKob42R/mCgZFgmxIm7ERQvBI+CzHlpEANhEIJNC+E8OnGMOGRpuNJTZH42yDS/H3DW+sv4ulSR9Kbb2jfygPduV5vQ8cviOhah7Qif8vwyok+MLLJW0cUzfZW+tUNoh64clq/QRV0KpXm/Yi/8Ekxz24/D/vceozIPiUjJRwuajT958xLMPF73SCP55VsUZ01A9Ka0EcZXdnCcsvEIIx+5szEAv2ApCyd7pnhNgOvL7SzkfP9Neutg9SqbqiXJbqrOcai8QzWtoziwwgFFt2bHXTIk5J2AtitXIWZWQ8rJQbgOzX0k55wytXQ== Development Server Users' Jail Key
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDh93/hepR9mJDy338gkDCy50Owc+d2w51We8f1zGUlKYnXDj0UTM42/GJMwc3bZ6MABmNgfz5vuOt0GKiAwcS8Ybj5R10+FOSO92Dj506nAW5uzJbAqwZbWoOXuuTFEQrjLoP3IHwFEaZmXLuXPy62Bce4OiVKTG5dqy1uIyXuyenrjPMHls3IKey2/S9rgXMLV9882zgxAOUb1ddnjDWzG/ViA7UJQJbNbb3Ed5BN7yWSYXresScO1PDisF2SaTAOi+53xUVnQFaA83F5LBUJsjhXUUXqJAXZ75qWbHe0iE6NXsaHy5/RLunPUKwK/9LksfdQ1HQ+EMDTGWahrxZk5rby1wFZaKiqArOOheE7mmS0Ies/r32km+q+c5YD/yng4BiNAzV9fdnpmUCct5UCeU3mW3Hgt+cJwnhikueTgVF9ryZx6jhEvZsRoDihtXUveG2VgC4t1F9z7F3fKi9QgkJmf6pNgiJTKP9FDhWIhjn2lLMbnJqBppEgg+kKwN8lJcQNinxTQ1pvMw5hsIX6m2ZbKAXSF/i5mDLZ+MCss1T6tEoPEb8WHSb6/NFQ52J1qyjoojeKk4g/gby+9otRBIUq4GWRYl5IihILolHLWD03QWMKBWmfpxm/XUuTF1tJlIC9K+/qyJBAJAAWb9TJLmhM7UbhUzhbllDGDiwKjQ== Nginx Jail Remus SSH Key
diff --git a/keys/old/personal b/keys/old/personal
new file mode 100644
index 0000000..170414a
--- /dev/null
+++ b/keys/old/personal
@@ -0,0 +1,3 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqaEsSbgpkF7SacJjbXM6w2jxi/TYjoKFdE+/Wa/V/A8QLaWmcpR0fOhY/IpIsP4OLaoKMQ0iEpsIf84B0mMH5mBMm9BTFeRm4EpTn8NAyFmmPR9ZpeA4K+T0vi6m2oI+eAVkb0dv0DzgIi/3PGcaaOjsOxCS83Gk5nIhFU7zuXCj97WXkb7ZwbEKLgxfS0GByLBDa/AbjH43QTJicPtgG/xD+ZokqFKbsfxUOZJYYhvJaL8nHB7UNGcic/8/L9AaNTjmAMxG7nW9w39FkiMnol9uguyhfJoy8bHy6wZ3W3Jx2hNv5deeGMFMqVeMkdp2b/rrF/ph6LTOJw2aeY9KvuI2umouXqXqKijw+y853DoXR755hhbeXKIcjYKkEojGOdoOnrxjI5/diSNQvVffsjDhCc+SLM+vK0VF3C6RU5yqYHfqEfP5dE8p7RaLFKc7Q7Oq42AUUl4ONaG5edV/h1AIveSo9obijd4O2P4ULbqpmqft3TKJo8AiKsJzy5Yn7GguK10eu08PBt2mG/bXzjvVkdUzaLxPrgp/yWB/dpV+dv7u9O/ok+0Y9O8WE3pFouXXXZNdg4VpjmLlp5tzLmT98cq8vTnOG/1l0U2Ox4c0+9mr3vCC/1rxQ8JrDfhRqiOIg0lU6etppQ88Z6DiYK+788cyPfIw9m9HnOUOryw== Main key
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5MFjWgP0GXtAUc4OBJSWJxdOKLxba+Xbp20sVRt+h/3fPW2p6oQVt/gZIWu21jT5xxu0atTv05w759B/7koyhm5/Kqg7OeMJK7swDOokt8pVvI1+IXBHffoIRO/tyTExxp+O+j57YTyeVcfIHkv4gGKyHXfb/JwDlN6C6S5I59NYALScT7VkIgvUdJUpjQarQnSrlDetqR0AVTyooEZuc8gsFJu/kABZDtIb3U0BEL5bEJqntOugM3yVDrRt1sep/gouXl8mTIbNmdHao49xjlcCj6zJNRmZuFx2OeieE0/hsI+E647gUH2XI/UXEv2HG4XZ3wfydhyCSCKK0pwVR Apex Public Key
+ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAgEAzIPEOLTsroIsEpwkd22FxyrxXMrzs046k3XWB0Vb1OpEZvFIM6pz1LudGwaET/0Rb+fBrYcnEZDstgvGV0HKxLc3ZFvtlyo58eSYr+Zl2xHyCTFr+zuWV+Y1KkZ67yVSjsjdgO0qKxOI+HcVEGHIIeO5BAIgXBQLYprvNrXIGssSQM3ySDWLurIisFu/4/bGVdqdaZe1cf2VGRJrukvnnKwkASy+f+K+kdAMZVMXLVoCvnCDoba+ccmgiQEKITual3V4wRsOQQkMI6BgeyJea03qkrGINYyRg7mD79Bis2g5OMFurxlgwIzFFRUOrL3UCMSjJh085tjdnlfwm7IGdTJ0kqFln2+b3oxvgYN4vpeGTkXEGGkEmE6SqLgJnRm/f3YIQQKhN0Hp+DJfYchJ1pr2OlazIZF698WpkW4S2LuHg0CqIF14ZEl7Qdwcq75JVKQkRHWyLqYdFpUg923O//OEK2gVTA4cHN1gw+cdTbuigtVS7+p5sDOWe4qbnI1pjIZ35+BE1iYxdQXx1JigmipvGR3E7gr7rfgqxX6ZO3FdWzpqPg5zlMDGrxmgzo4J6YFE15gF+iSQ0cTBgZitD58w0UAxlTsdz3hOiYDYH1hJ+aO4VmAT07JYoEbQZ7GI8O12otFYzM4zFJ3+1iebhgE630xhZzbUeQsU6qrLM8U= Mitchell's Windows ( laptop ) Key
diff --git a/keys/old/yac b/keys/old/yac
new file mode 100644
index 0000000..d0d6ff6
--- /dev/null
+++ b/keys/old/yac
@@ -0,0 +1,5 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqaEsSbgpkF7SacJjbXM6w2jxi/TYjoKFdE+/Wa/V/A8QLaWmcpR0fOhY/IpIsP4OLaoKMQ0iEpsIf84B0mMH5mBMm9BTFeRm4EpTn8NAyFmmPR9ZpeA4K+T0vi6m2oI+eAVkb0dv0DzgIi/3PGcaaOjsOxCS83Gk5nIhFU7zuXCj97WXkb7ZwbEKLgxfS0GByLBDa/AbjH43QTJicPtgG/xD+ZokqFKbsfxUOZJYYhvJaL8nHB7UNGcic/8/L9AaNTjmAMxG7nW9w39FkiMnol9uguyhfJoy8bHy6wZ3W3Jx2hNv5deeGMFMqVeMkdp2b/rrF/ph6LTOJw2aeY9KvuI2umouXqXqKijw+y853DoXR755hhbeXKIcjYKkEojGOdoOnrxjI5/diSNQvVffsjDhCc+SLM+vK0VF3C6RU5yqYHfqEfP5dE8p7RaLFKc7Q7Oq42AUUl4ONaG5edV/h1AIveSo9obijd4O2P4ULbqpmqft3TKJo8AiKsJzy5Yn7GguK10eu08PBt2mG/bXzjvVkdUzaLxPrgp/yWB/dpV+dv7u9O/ok+0Y9O8WE3pFouXXXZNdg4VpjmLlp5tzLmT98cq8vTnOG/1l0U2Ox4c0+9mr3vCC/1rxQ8JrDfhRqiOIg0lU6etppQ88Z6DiYK+788cyPfIw9m9HnOUOryw== Main key
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgEJDC2ZFWR54vz7SwHPpNviL5ixQXLFfMKab3Ost6B+CSuY+EecIKF1Fp8i8pJyGO25gW9yidJIuei6GbcOS//OUXtybemBSL44Io1YicGFDJhDlInhyjdrPzuRkmWJfeEzETA+zpB8eE/rWG4CzYhWiSLvkyVU06QzNPtvJWpYMTe6bafOP7Saoje6LRHadukrJgANuckTiDMNBb3X/mxmx6/K+/JP5bZ37wpw5/n1NnjHMVMrYD+9gX1q4GoolmhinuUXN4STXQX08R470ETX/4xVB104bVmgdVeExA4IxqHYaN11K+NPFBuPoOtidiJzJVXf3Q2NOhEzAPF32/ home server
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGuhUE6l2iZg8fcP74kWZGpeyfTnrTPIxYycvRRAoQ6+Bx0cNIVjU6qv8XbpC86i919QTHFOJW9a0xx6grVMJ4uOVg1g3Ud4ffF3tvrYHsLuL0iG7C+Vcp+HV0G8NiJyUqAhRkl1iaTPzSieuDeVv2ny3X6KPscA2EO2GTK6Ci6yxZ5RgO+jufCM7VhX3SjBIbnHWHtC9BQ6a9nUwfcNrMKdGYKutD9IrloGS8R4nwkLacRaltVsvLShKz2SpHhOOkwat4TNOqadygD7jOUh82+o45e8lW3V82UiLkcgxqH5YClBJVC1ZMsCEJ0PeMMcKb7SWowJy5mXhV27PktP4H NY Server
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDX8rnXKJFI+wi0mj+iCOkId0ICAkfrng3bDi5lb6iNYNJpahQu96zSYg94lHpPCDAndbtPF262wBZE/zISBDC7E1uXbgX48zq9cKjv+ESkgpUEH5KB2G61cS2QYq9nRVQfMXWSDQwM9Mpa0ZiaK2ePPjD8DkcUvO11bwTOuh/n8vWRoRukOpPUKyVKyBWkgiHIwfXLqzcHUWe3tUaRVaAo3C0uJRnmTbnKIAS9Q1EG7yz/j08CdhSW6MmjgEWXu6JQfBCZrSZ5gMKEJtF7p85dHJr7awUtKTgu8QFH1iwxcRR58baZxYubjqd/SczIoErkM8s2YuesJFpKUS4V2zU536VFFLFgzDX1agFxwhPCMhDJTFnxFH2llGokDmxsiwguoDp0Ik5bMgb0OBkSidjvO+2qTdpVJ7/VZDbdHApZ0/Moq1iaC2bEZNd/Pb3Fan5ryJujEaYoDkXIEsoDlBjyDXzD83hwrKrNpqMMueJT5VDc6mqPIe8vR693VSGECvSjoTVjUXX+UJvsiZ9eSZKt1qPyvcgPegPP9U4MM0K4apZGFjnV9sjclGKxbdskmnw3M4pb8+uEqfn1e6SK1JLjt6//ccrFSWFLhZNsOF18ShqJCWQg8g0IfYGDwAT+decH5rCTcodevLVJLDioiycr1ejJQOWrmPrHKYqEWrsbHxBgW2f18g+X/vZX+1P48XkO+bybWSyerd2wlmjsSa+3ssoFjRWiOKsZPjdSEyE8MnIJHSvmYruu89DID7PK0U30BZg1ZfWcO0Np6Gpi6y9GwVGkwvvk9xnquYTJlQYd7cFIGOe3CWukPYPP5WEwar2vZG3IWo0DnR0pYDItKEBdL69BhCAIW9deRf2P4F1eCPoygUW9EZ83xQTZEDHnYOilOu/97FwuBAqR6i5mPNPUYZX2H2eXAXqY2i5VW7kinqj5oDrC967jKoEIM6np/j8YZu7P0It5agF+/xFNSqSgS1WBY1xTWaFSKM62SGe1kCRLoQHULY7t7DeT0q+qzbIjSq7GRslrgbXWiyWsj/crqCGVwYbYmGZ6U95y4sG4jVR5zpUzlD/DDSHu1matCn7Qq27qXNaEdfFpmnweV9eo3QnTjgKgPnOSMEFCP8yq1ez9FIAVij1ZHXS7SHkL27Pg951TaX0YPHRrGjkzicDUnk/OSbksnBS9D4FzlSjldcapRa1f0RJ27Q7uC1dsIv0DiPWGKQB5UFtbigOGrgENV5EESEicPNUngyUnl1GcKNB+lrq7B+bGFVnkSvKn0PX7TpYVw43w5LtSDOzAX+g7wRfeJvnLeFVKhllRnrxaahVPAo+sDVXzF2CFgvtrHziI3QlOipSURlCoqt6rdacL YAC Development Server
+ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAgEAzIPEOLTsroIsEpwkd22FxyrxXMrzs046k3XWB0Vb1OpEZvFIM6pz1LudGwaET/0Rb+fBrYcnEZDstgvGV0HKxLc3ZFvtlyo58eSYr+Zl2xHyCTFr+zuWV+Y1KkZ67yVSjsjdgO0qKxOI+HcVEGHIIeO5BAIgXBQLYprvNrXIGssSQM3ySDWLurIisFu/4/bGVdqdaZe1cf2VGRJrukvnnKwkASy+f+K+kdAMZVMXLVoCvnCDoba+ccmgiQEKITual3V4wRsOQQkMI6BgeyJea03qkrGINYyRg7mD79Bis2g5OMFurxlgwIzFFRUOrL3UCMSjJh085tjdnlfwm7IGdTJ0kqFln2+b3oxvgYN4vpeGTkXEGGkEmE6SqLgJnRm/f3YIQQKhN0Hp+DJfYchJ1pr2OlazIZF698WpkW4S2LuHg0CqIF14ZEl7Qdwcq75JVKQkRHWyLqYdFpUg923O//OEK2gVTA4cHN1gw+cdTbuigtVS7+p5sDOWe4qbnI1pjIZ35+BE1iYxdQXx1JigmipvGR3E7gr7rfgqxX6ZO3FdWzpqPg5zlMDGrxmgzo4J6YFE15gF+iSQ0cTBgZitD58w0UAxlTsdz3hOiYDYH1hJ+aO4VmAT07JYoEbQZ7GI8O12otFYzM4zFJ3+1iebhgE630xhZzbUeQsU6qrLM8U= Mitchell's Windows ( laptop ) Key
diff --git a/keys/personal b/keys/personal
new file mode 100644
index 0000000..dc804fd
--- /dev/null
+++ b/keys/personal
@@ -0,0 +1,4 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCw3Q6R8S5wfHGwpbt20CaV0GKbb6+yHSeVQgiVhHsVQ7jPzRc1S3cxxWCX8QxYNVRzODCpEO/JtSVb4phKCfXyYTy1RvrNQ8fzfR1q7lFMcbTSTYKoORjP/k2NStEFhvH1/hw16jlYp99aKJiyIkQXE7HSrSjade+AdKZOANbSfAgH5C2AF8clIHWkx69RlOBOWkAm7CZyxmTt6PZR3S6lIojRGwQU4lq4jvJ/AboXiwPVxBLASH0kVZDcYyeUliHS9evxgiS+4v4ZlNKxgeLibSkffnar+yffmWEtRWs3LS+/zT2zLQjWyyZ3ogmJ43X4tK4noQIUUECweyOeqqdwS1qeWCixCc9oUvvShx9n99TElnI7ZWFRv5l6mtdi6f0G0rEL3iYDUYK4Jhw7y0WFT248h65AOjZaMFmkbjYIXVlQ+jfQjUOVmB+SpO8811IWBPe4EV2FqZjf2pYiF19L8RsjeVQBS0tt+4dAg72JhRc4BlDTMQLsCxI2EsI9zOyGJHmRufz1z4WWMjQVr47pkTv6CqPYYElbhBUaeT+Jq+jczG3HFhGAV5R0PFutkXP1743wQfnXxfwogq8dx5lakZc5+DMA4ppbjOyAnrx9ZL0m/aQ+lCmNNPWOlK8JyUqTJKGW1euS5xZkWadV2PrEz2+PiJK8cHXjtYwUUCy5Tw== MainBSD Key
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDWGdnxQksRp8jTIMSdsHDoaTObj4EJqRWqOqJa30WGOgAzXTpr3R5KCj/T5IqKiOvjAVRwdi4XtCtXidElAT+iDyAkONb8oe+JiJEqhDDxDhkkRGV6AS4N2w4kGH3Hcq3+qIs5o96YdiC7Q1fahs24gxQ7O/wjrkoZLaKTEL7F1R8LZAKuVzeqKWzf7T9GOau2vUCm0OV/ehqx6wQhHWJWUEcoo3W5yjMporZ0AqBgk/KOIWACu8Qw8+AkvWDwYUNTrtzWB5zyQ0MoNlCo7q7f7/eTl0nFJWG3g0/6IVOPbvAUWK30a8w1heP2fMOaIBPlNOL1Op9SOgfuViko2DKQVPiirLryTkhUVntuVGUUpbC6ySMgfzZfJSTAaiFyr089ryZlBownir7O8KtgJldi8t/8MjA4XeKZx77E+/vYGCrkZOR6gmavMOZE/VGg2pxkl+OH9rs79a9kTNEH9bxV08BPZ7c5F1mHrsLu/qziVv+ans7VgdvdiCGOrnzKtXB9jDP7plIHz3ODDggz5BhkKe2xifiTCrSTEeUTmJtV/zdG2R5Sc9SYnJVEy3SvqTS4FjCwbnr0fW1FS7D2R8rlKld5hZfDTlsWOLohHlmgdIa+lhPswYAnQb6SoOL1b3c96slDRQdVsQ3Kw8j0xlP1+1HuRgEW9e/3f4WDAUsBZw== System76 Laptop
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDNH0qfUtX4BLuqyzJpGqlYzUcrH44Z1FpGK4b4n0WWQROWJgb9jgwTkKmnWSu1M5s/j+bS5zfgf+72SCDqgb+dZyDgDnMnC1dEj+SWJPpYMNtMWka/UaGD1rptqgGd5JtRrKo7LfEkfiP57ACWgLbhJtKlQhSILIpCwXZsNIlQVkl0jOkiUTMq/d+O9Plv9nmSnNtD+ohkvrMXUcTzyRlC6JEaZUfbWByVSNFsdaNbt7OUdM4/GON1WrezJ2apQWjDos5UFj/+eY8GKpNjmaBVcg0M6T16G2VosnXfi1wV7SquzCI+qDDNUKMFAdYctidja8EZ0m6bMuZ+3TgOm8p8MYCpWBuleQuq7KU2MBZTe/qQdvQ5ywDSlHEdQBorNvVf1JIqcYoruzCswXn6uQ6rsziqzUfB1dhHVHsgS9YhSaMIG5onquorOR/CRvOATaE7e/MlW89iDYKCS/Sche0I4tEXKOmm22Vf/K1NmxsuA/2Zm9i3AOaFXNxd7R8F6aqdqzFsUDQ1TykkKGPgxWTx1TthaFa9+bHN0VagjdP5sjF2cP39PduN9DQPCjQGB24R3iyB20UzSTrxrfChB/TNmbaiLHHZfZpAjoPdpQWUwIRgY3Qum6huLlOtd+545udHngZ3wDZOBl7wKFV71I7NnP2XV65dLqIGm8d3DIea1w== Work Computer ( Desktop )
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDi+iJywox5UxRYou9ShwZP5MgtiOQJ7SRS5FdDCD5BWmqyZHyxf2lYz/EUtMZG48H/zVmEzyVAhUMcO6bDQqFXx6VTrXBk33Ar7vceqbRypzqI2ExM0vmWwXOSUBBWfhoSu3JKFeoXGB2ATHrQdhipP4Fttbd+6lA913962PF6RNjq93D6xAsHiq98aIV24jKogoCZZXcnzaObs8hC7aX38J7Lpl/8BYuOyFSWHRUWWITSlh35rfCAGhoRVvWS5idCI50bl/318rABGwkKm5HR3TGp467ds9M5Ngy2i8GvjvuuRy4lZ3bNZdBf0KicYSch/nuUCJktOYt9Od3qmLRP Alienware Laptop key
diff --git a/keys/personal.txt b/keys/personal.txt
new file mode 120000
index 0000000..1a6df4b
--- /dev/null
+++ b/keys/personal.txt
@@ -0,0 +1 @@
+personal \ No newline at end of file
diff --git a/keys/yac b/keys/yac
new file mode 100644
index 0000000..a7903c8
--- /dev/null
+++ b/keys/yac
@@ -0,0 +1,3 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC/HijxbReCZPshYjErBZokaAUnu+UmXhhf1BbnLrwk+XbgEa+d2EK7VM9EwkQmuTw1Z0+Ug/ZnyoD4mB0KGY4ozBgnDCUMKbO4wVPJ7mN4dints5im/quxLECQkbnM2Tz4WJ2kyHZ+JVkvEXOLpzt0xKrEGL0GZXbfHq8+a97IJK84Pk8DxnvXagZTK9K5ESepd5Gdc2Ayoqw9+6aY3fmN1JuVglb1kRaG/Bt1YFngWDsqYHCqGIE+KjCXWtPgohFQPS/GUkMuD8+9//zIbe7d+AOzXowIattlIbkdhm9TW21FS3nEDSFdTqReqRPDnlIDz+ObRvBk/DrHMsiqeAU/36xBkJhp7+KY0ehJU6EFBObX40S9ClN37kwG8ZbU0LsYaesrCejCPSnX1mj71BUkCgVUBGOTRd0yU/Fto2n4dpgHMDgEyO4g0lY07UMXyV7zpbnURZxor+4JcvYviCd9ESr48lDDwB1UB0Z9VnYlLtZ7Mr1R/yaY6543UVl+q6BbXNmlcGDT/CZR9WNxq6WdtJ+p4pcgRQBCzUElEtRCNAdCHJqkpStkAnOz/lEEAxylHRTTzWBOc3dveRQSwswwexpcUXrxiVYNGpZO/WyrYnlaRQe7EMiOF2uZ537CpRgjUxnrbrixXepF5cBpJXkWHorbhAB/1L4xg3wgoSywTw== Development Virtual Machine
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5kqfvo1MjN8ymzy1T0KsPeYhKTcR7/78XLk0fXNX54lijafPHk+nDJsSxuI9S4bDUy9DIVSMA1fDo9hoFSZ1+x35Clg4w7bFmHTnbOXhA92i6vGkQL+HudzSiZxFotJfbcC0GV9CkHjsh9vL/OfxxnTzHcmUspY8TdEaRChSLB3HB7g6vlok3VuZCR+deO93XbN2HW02SGEZqwi2K71KbijEY1uNHcWMDSxh1vjVcEKNtLnun3FO/ekM73Vxs+YIKru5iIZoP3WA+XeBT+JW4MTf47FQ1LB3/+Tw10CcYhaS/uGk3wLj6bjs88mwMGk48ggGZ0fkl8e0k3dICKxtHwySjbmEZQB7DNjvJn7W51wtCU/FhGKob42R/mCgZFgmxIm7ERQvBI+CzHlpEANhEIJNC+E8OnGMOGRpuNJTZH42yDS/H3DW+sv4ulSR9Kbb2jfygPduV5vQ8cviOhah7Qif8vwyok+MLLJW0cUzfZW+tUNoh64clq/QRV0KpXm/Yi/8Ekxz24/D/vceozIPiUjJRwuajT958xLMPF73SCP55VsUZ01A9Ka0EcZXdnCcsvEIIx+5szEAv2ApCyd7pnhNgOvL7SzkfP9Neutg9SqbqiXJbqrOcai8QzWtoziwwgFFt2bHXTIk5J2AtitXIWZWQ8rJQbgOzX0k55wytXQ== Development Server Users' Jail Key
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDh93/hepR9mJDy338gkDCy50Owc+d2w51We8f1zGUlKYnXDj0UTM42/GJMwc3bZ6MABmNgfz5vuOt0GKiAwcS8Ybj5R10+FOSO92Dj506nAW5uzJbAqwZbWoOXuuTFEQrjLoP3IHwFEaZmXLuXPy62Bce4OiVKTG5dqy1uIyXuyenrjPMHls3IKey2/S9rgXMLV9882zgxAOUb1ddnjDWzG/ViA7UJQJbNbb3Ed5BN7yWSYXresScO1PDisF2SaTAOi+53xUVnQFaA83F5LBUJsjhXUUXqJAXZ75qWbHe0iE6NXsaHy5/RLunPUKwK/9LksfdQ1HQ+EMDTGWahrxZk5rby1wFZaKiqArOOheE7mmS0Ies/r32km+q+c5YD/yng4BiNAzV9fdnpmUCct5UCeU3mW3Hgt+cJwnhikueTgVF9ryZx6jhEvZsRoDihtXUveG2VgC4t1F9z7F3fKi9QgkJmf6pNgiJTKP9FDhWIhjn2lLMbnJqBppEgg+kKwN8lJcQNinxTQ1pvMw5hsIX6m2ZbKAXSF/i5mDLZ+MCss1T6tEoPEb8WHSb6/NFQ52J1qyjoojeKk4g/gby+9otRBIUq4GWRYl5IihILolHLWD03QWMKBWmfpxm/XUuTF1tJlIC9K+/qyJBAJAAWb9TJLmhM7UbhUzhbllDGDiwKjQ== Nginx Jail Remus SSH Key
diff --git a/login_conf b/login_conf
new file mode 100644
index 0000000..c3b651d
--- /dev/null
+++ b/login_conf
@@ -0,0 +1,6 @@
+# Use UTF-8... why this isn't default is a little
+# bit beyond me.
+me:\
+ :charset=UTF-8:\
+ :lang=en_US.UTF-8:\
+ :setenv=LC_COLLATE=C:
diff --git a/mkshrc b/mkshrc
new file mode 100644
index 0000000..0ea8be6
--- /dev/null
+++ b/mkshrc
@@ -0,0 +1,587 @@
+## Mitch's General shell configuration
+## MIT LICENSE
+# vim: syn=sh
+
+# How to install:
+# For ZSH:
+# curl https://www.rygel.us/etc/mkshrc > $HOME/.mkshrc && echo '. $HOME/.mkshrc' >> .zshrc.local
+# For Bash:
+# curl https://www.rygel.us/etc/mkshrc > $HOME/.mkshrc && echo '. $HOME/.mkshrc' >> .bashrc
+#
+# Personally I use this with mksh, .mkshrc is auto loaded by mksh
+
+
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+# ____ _
+# | _ \ _ __ ___ _ __ ___ _ __ | |_
+# | |_) | '__/ _ \| '_ ` _ \| '_ \| __|
+# | __/| | | (_) | | | | | | |_) | |_
+# |_| |_| \___/|_| |_| |_| .__/ \__|
+# |_|
+# _____ _ _
+# | ___| _ _ __ ___| |_(_) ___ _ __ ___
+# | |_ | | | | '_ \ / __| __| |/ _ \| '_ \/ __|
+# | _|| |_| | | | | (__| |_| | (_) | | | \__ \
+# |_| \__,_|_| |_|\___|\__|_|\___/|_| |_|___/
+#
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+precmd() {
+ typeset e=$?
+
+ (( e )) && print -n "$e|"
+}
+set_ps1() {
+ PS1='$(precmd)${BG}${ACCENT_C}${ACCENT_P}${USER_C}${USER:=$(id -un)}@$(hostname -s)${ACCENT_C}${ACCENT_P} ${ACCENT_P}${PATH_C}${PWD:-?}${ACCENT_C}${ACCENT_P}${END_C}
+${END_P} '
+ export PS1;
+}
+set_root_ps1() {
+PS1='$(precmd)${BG}${ACCENT_C}${ACCENT_P}${HOST_C}$(hostname -s)${ACCENT_C}${ACCENT_P} ${ACCENT_P}${PATH_C}${PWD:-?}${ACCENT_C}${ACCENT_P}${END_C}
+${END_P} '
+export PS1;
+}
+# RED: 31, GREEN: 32, YELLOW: 33, BLUE: 34, MAGENTA: 35, CYAN: 36, WHITE: 37, GREY 38. and No color which is 0.
+set_prompt() {
+ if [ `id -u` -eq 0 ] ; then
+ # Previously
+ # Red for root, and no username
+ # PS1="$(hostname -s) \$PWD
+ BG=""
+ ACCENT_C=""
+ ACCENT_P="|"
+ HOST_C=""
+ PATH_C=""
+ END_C=""
+ END_P="#"
+ set_root_ps1
+ else
+ # Previously
+ # PS1="${USER:=$(id -un)}@$(hostname -s) \$PWD
+ BG=""
+ ACCENT_C=""
+ ACCENT_P="|"
+ USER_C=""
+ PATH_C=""
+ END_C=""
+ END_P="$"
+ set_ps1
+ fi
+}
+set_basic_prompt() {
+ PS1="$(precmd)${USER:=$(id -un)}@$(hostname -s) \$PWD $ "
+ export PS1;
+}
+set_super_basic_prompt() {
+ alias cd=do_cd
+}
+do_cd() {
+ builtin cd $@
+ pwd=${PWD##HOME}
+ [ ${#pwd} -lt ${#PWD} ] && pwd="~$pwd"
+ [ "$hostname" ] || hostname=$(hostname)
+ PS1="$USER@$hostname:$pwd \$ "
+ [ $(id -u) -eq 0 ] && PS1="$USER@$hostname:$pwd # "
+}
+
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+# _ _ _ _____ _ _
+# / \ | (_) __ _ ___ | ___| _ _ __ ___| |_(_) ___ _ __ ___
+# / _ \ | | |/ _` / __| | |_ | | | | '_ \ / __| __| |/ _ \| '_ \/ __|
+# / ___ \| | | (_| \__ \ | _|| |_| | | | | (__| |_| | (_) | | | \__ \
+# /_/ \_\_|_|\__,_|___/ |_| \__,_|_| |_|\___|\__|_|\___/|_| |_|___/
+#
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+setaliases() {
+ alias ls="ls -F";
+ alias l="ls -lh";
+ alias ll="ls -l";
+ alias g="grep";
+ alias m="$PAGER";
+ alias j="jobs";
+ alias p="pwd";
+ # [ $(which nvi 2>/dev/null) ] && alias vi='nvi';
+ alias gdb='gdb -q'
+ alias bc='bc -q'
+ alias egrep='egrep --color=auto'
+ alias eg='egrep'
+ alias egf='egrep --color=force'
+ alias search='egrep -rniI'
+}
+
+setcoloraliases() {
+ if [ `uname` = "Linux" ] ; then
+ alias ls="ls --color=auto -F";
+ alias lm='ls -lh --color=force | more';
+ elif [ `uname` = "FreeBSD" ] ; then
+ alias ls="ls -FG";
+ alias lm='CLICOLOR_FORCE="1" ls -l | less -r';
+ fi
+
+ alias grep="grep --color=auto";
+ alias diff='colordiff';
+ alias search='egrep --color=auto -rnI';
+ alias t='tree -CdL'
+}
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+# ____ ____ _ _____ _ _
+# / ___/ ___|| | | ___| _ _ __ ___| |_(_) ___ _ __ ___
+# \___ \___ \| | | |_ | | | | '_ \ / __| __| |/ _ \| '_ \/ __|
+# ___) |__) | |___ | _|| |_| | | | | (__| |_| | (_) | | | \__ \
+# |____/____/|_____| |_| \__,_|_| |_|\___|\__|_|\___/|_| |_|___/
+#
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mkrootcrt() {
+ name="$1"
+ $openssl genpkey -algorithm RSA -out ${name}.key -aes-128-cbc -pkeyopt rsa_keygen_bits:4096
+ $openssl req -x509 -new -nodes -key ${name}.key -days 20000 -out ${name}.pem
+}
+# Depnds on ENV variable CA_CERT and CA_KEY
+gencrt() {
+ name="$1"
+ $openssl genpkey -algorithm RSA -out ${name}.key -pkeyopt rsa_keygen_bits:4096
+ $openssl req -new -key ${name}.key -out ${name}.csr
+ $openssl x509 -req -in ${name}.csr -CA $CA_CERT -CAkey $CA_KEY \
+ -CAcreateserial -out ${name}.crt -days 365
+}
+gencsr() {
+ name="$1"
+ $openssl genpkey -algorithm RSA -out ${name}.key -pkeyopt rsa_keygen_bits:4096
+ $openssl req -new -key ${name}.key -out ${name}.csr
+}
+# Usage debugstarttls $ipaddr:$port
+debugstarttls() {
+ openssl s_client -starttls smtp -crlf -connect $1 $2
+}
+
+
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+# __ __ _ _____ _ _
+# | \/ (_)___ ___ | ___| _ _ __ ___| |_(_) ___ _ __ ___
+# | |\/| | / __|/ __| | |_ | | | | '_ \ / __| __| |/ _ \| '_ \/ __|
+# | | | | \__ \ (__ | _|| |_| | | | | (__| |_| | (_) | | | \__ \
+# |_| |_|_|___/\___| |_| \__,_|_| |_|\___|\__|_|\___/|_| |_|___/
+#
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+set_nocaps() {
+ setxkbmap -option ctrl:nocaps
+}
+pkg_switch_branch() {
+ _f="/etc/pkg/FreeBSD.conf"
+ cp $_f ${_f}.orig
+ sed -e's/quarterly/latest/' < ${_f}.orig > ${_f}
+}
+find_most_recent_python() {
+_python="$(which python2 2>/dev/null)"
+$_python -c 'import os
+
+max_mtime = 0
+for dirname,subdirs,files in os.walk("."):
+ for fname in files:
+ full_path = os.path.join(dirname, fname)
+ mtime = os.stat(full_path).st_mtime
+ if mtime > max_mtime:
+ max_mtime = mtime
+ max_dir = dirname
+ max_file = fname
+
+print max_dir, max_file'
+}
+install_tmx() {
+location="/usr/local/bin/tmx"
+if ! [ -z $1 ]; then
+ location="$1"
+fi
+echo '#!/bin/sh
+
+# Modified further by Mitchell Riedstra to be compatible with
+# /bin/sh
+
+#
+# Modified TMUX start script from:
+# http://forums.gentoo.org/viewtopic-t-836006-start-0.html
+#
+# Store it to `~/bin/tmx` and issue `chmod +x`.
+#
+
+# Works because bash automatically trims by assigning to variables and by
+# passing arguments
+trim() { echo $1; }
+
+if [ -z "$1" ]; then
+ echo "Specify session name as the first argument"
+ exit
+fi
+
+# Only because I often issue `ls` to this script by accident
+if [ "$1" == "ls" ]; then
+ tmux ls
+ exit
+fi
+
+base_session="$1"
+# This actually works without the trim() on all systems except OSX
+tmux_nb=$(trim `tmux ls | grep "^$base_session" | wc -l`)
+if [ "$tmux_nb" == "0" ]; then
+ echo "Launching tmux base session $base_session ..."
+ tmux new-session -s $base_session
+else
+ # Make sure we are not already in a tmux session
+ if [ -z "$TMUX" ]; then
+ # Kill defunct sessions first
+ old_sessions=$(tmux ls 2>/dev/null | egrep "^[0-9]{14}.*[0-9]+\)$" | cut -f 1 -d:)
+ for old_session_id in $old_sessions; do
+ tmux kill-session -t $old_session_id
+ done
+
+ echo "Launching copy of base session $base_session ..."
+ # Session is is date and time to prevent conflict
+ session_id=`date +%Y%m%d%H%M%S`
+ # Create a new session (without attaching it) and link to base session
+ # to share windows
+ tmux new-session -d -t $base_session -s $session_id
+ # Create a new window in that session
+ #tmux new-window
+ # Attach to the new session
+ tmux attach-session -t $session_id
+ # When we detach from it, kill the session
+ tmux kill-session -t $session_id
+ fi
+fi
+' > $location && chmod +x $location && echo "Installed to: $location"
+
+}
+find_most_recent() {
+ if [ "$(uname)" != 'linux'] ; then
+ path="0"
+ while [ $# -gt 0 ] ; do
+ case $1 in
+ -p)
+ path="$2"; shift; shift; ;;
+ esac
+ done
+ if [ $path = "0" ] ; then
+ find "$path" -printf "%T@ %Tc %p\n" | sort -n
+ else
+ echo "You need to specify a path with -p"
+ fi
+ else
+ echo "GNU Find only"
+ fi
+}
+startup_zram() {
+ size="512M"
+
+ while [ $# -gt 0 ] ; do
+ case $1 in
+ -s)
+ size="$2"
+ shift; shift; ;;
+ *)
+ echo "Unknown option $1"
+ shift; ;;
+ esac
+ done
+
+ modprobe zram
+ zramctl --find --size="$size"
+ mkswap -f /dev/zram0
+ swapon /dev/zram0
+
+}
+# Sometimes useful function for unmounting a chroot dir on Linux
+umount_recursive() {
+ case $1 in
+ -h|--help|"")
+ cat <<-EOF
+ Specifiy the full path to the mountpoint
+ and this function will do it's best to
+ unmount all child filesystems and the path
+ specified
+ Example:
+ $0 /path/to/filesystem/with/lots/of/mountpoints
+ Options:
+ -f|--force
+ EOF
+ ;;
+ -f|--force)
+ local _path="$2"
+ local filesystems=`cat /proc/mounts | grep $_path | awk '{print $2}' | sort -r`
+ for filesystem in $filesystems ; do
+ umount -f $filesystem
+ done
+ ;;
+ *)
+ local _path="$1"
+ local filesystems=`cat /proc/mounts | grep $_path | awk '{print $2}' | sort -r`
+ for filesystem in $filesystems ; do
+ umount $filesystem
+ done
+ ;;
+ esac
+}
+time_at_yac() {
+ date --date='September 22 2014'
+}
+find_php_short_tags() {
+ egrep --include="*.php" -rniI '<\?[^px=q]' . --color=force
+}
+gentags() {
+ options="-R --links --languages=php,-javascript"
+ dir="."
+ while [ $# -gt 0 ] ; do
+ case $1 in
+ -o)
+ options="$2"
+ shift; shift;
+ ;;
+ esac
+ done
+
+ if [ -x $(which exctags 2>/dev/null) ] ; then
+ $(which exctags 2>/dev/null) $options $dir
+ elif [ -x $(which ctags 2>/dev/null) ] ; then
+ $(which ctags 2>/dev/null) $options $dir
+ fi
+}
+set_tmux_title() {
+ text=""
+ while [ $# -gt 0 ] ; do
+ text="$( echo $text $1)";
+ shift;
+ done
+ printf $'\033k'"${text}"$'\033\\';
+}
+set_title() {
+ text=""
+ while [ $# -gt 0 ] ; do
+ text="$( echo $text $1)";
+ shift;
+ done
+ printf $'\033]0;'"$text"$'\007';
+}
+
+# Usage: dir_oct:file_oct path
+setperms() {
+ dir_perms=$(echo $1 | awk -F: '{print $1}')
+ file_perms=$(echo $1 | awk -F: '{print $2}')
+ find $2 -type f -exec chmod $file_perms {} \; ;
+ find $2 -type d -exec chmod $dir_perms {} \; ;
+}
+
+timestamp() {
+ date +%m.%d.%y_%H.%M.%S
+}
+
+
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+# ____ __ _ _ _
+# / ___|___ _ __ / _(_) __ _ _ _ _ __ __ _| |_(_) ___ _ __
+# | | / _ \| '_ \| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \
+# | |__| (_) | | | | _| | (_| | |_| | | | (_| | |_| | (_) | | | |
+# \____\___/|_| |_|_| |_|\__, |\__,_|_| \__,_|\__|_|\___/|_| |_|
+# |___/
+# __ __ _
+# | \/ | __ _ _ __ __ _ __ _ ___ _ __ ___ ___ _ __ | |_
+# | |\/| |/ _` | '_ \ / _` |/ _` |/ _ \ '_ ` _ \ / _ \ '_ \| __|
+# | | | | (_| | | | | (_| | (_| | __/ | | | | | __/ | | | |_
+# |_| |_|\__,_|_| |_|\__,_|\__, |\___|_| |_| |_|\___|_| |_|\__|
+# |___/
+# _____ _ _
+# | ___| _ _ __ ___| |_(_) ___ _ __ ___
+# | |_ | | | | '_ \ / __| __| |/ _ \| '_ \/ __|
+# | _|| |_| | | | | (__| |_| | (_) | | | \__ \
+# |_| \__,_|_| |_|\___|\__|_|\___/|_| |_|___/
+#
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+pull() {
+ url=""
+ file=""
+ while [ $# -gt 0 ] ; do
+ case $1 in
+ -f)
+ file="$2"
+ shift; shift; ;;
+ -u)
+ url="$2"
+ shift; shift; ;;
+ esac
+ done
+ if [ -x $(which curl 2>/dev/null) ] ; then
+ $(which curl 2>/dev/null) $url > $file
+ elif [ -x $(which wget 2>/dev/null) ] ; then
+ $(which wget 2>/dev/null) $url -O $file
+ elif [ -x $(which fetch 2>/dev/null) ] ; then
+ $(which fetch 2>/dev/null) $url -o $file
+ fi
+}
+pulldotfile() {
+ file="$1"
+ pull -u "${UPDATE_URL}${file}" -f "$HOME/.${file}"
+}
+pullkeys() {
+ file="keys/$1"
+ if ! [ -d $HOME/.ssh ] ; then mkdir $HOME/.ssh ; fi
+ chmod 700 $HOME/.ssh
+ chmod 600 $HOME/.ssh/authorized_keys
+ mv "$HOME/.ssh/authorized_keys" "$HOME/.ssh/authorized_keys.$(timestamp)"
+ pull -u "${UPDATE_URL}${file}" -f "$HOME/.ssh/authorized_keys"
+ chmod 600 $HOME/.ssh/authorized_keys
+}
+pullsshconfig() {
+ file="ssh/config"
+ pull -u "${UPDATE_URL}${file}" -f "$HOME/.ssh/config"
+}
+updatetmuxconf() {
+ pulldotfile "tmux.conf"
+ if ! [ -e $HOME/.tmux.conf.local ] ; then
+ touch $HOME/.tmux.conf.local
+ fi
+}
+updategitconf() {
+ pulldotfile "gitconfig"
+}
+updateshell() {
+ pulldotfile "mkshrc"
+ . $HOME/.mkshrc
+}
+updatevimrc() {
+ cd $HOME
+ curl ${UPDATE_URL}vim.txz | tar xfJv -
+ cd -
+}
+
+
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+# __ __ _ ____ _
+# | \/ (_)___ ___ / ___|___ | | ___ _ __
+# | |\/| | / __|/ __| | | / _ \| |/ _ \| '__|
+# | | | | \__ \ (__ | |__| (_) | | (_) | |
+# |_| |_|_|___/\___| \____\___/|_|\___/|_|
+#
+# _____ _ _
+# | ___| _ _ __ ___| |_(_) ___ _ __ ___
+# | |_ | | | | '_ \ / __| __| |/ _ \| '_ \/ __|
+# | _|| |_| | | | | (__| |_| | (_) | | | \__ \
+# |_| \__,_|_| |_|\___|\__|_|\___/|_| |_|___/
+#
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+setcolorterminal() {
+ case $TERM in
+ xterm*)
+ export TERM=xterm-256color
+ set_title $(hostname)
+ # printf $'\033]0;'"$(hostname)"$'\007';
+ ;;
+ screen*)
+ export TERM=screen-256color
+ set_tmux_title $(whoami)
+ # printf $'\033k'"$(whoami)"$'\033\\';
+ ;;
+ esac
+}
+
+setlscolors() {
+ if [ "$(uname)" == "Linux" ] ; then
+ export LS_COLORS='di=36;40:ln=1;31;40:so=32;40:pi=33;40:ex=1;32;40:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;42:ow=0;43:'
+ elif [ "$(uname)" == "FreeBSD" ] ; then
+ export LSCOLORS='gxBxcxdxCxegedabagacad'
+ fi
+}
+
+colormanpages() {
+ export LESS_TERMCAP_mb=""
+ export LESS_TERMCAP_md=""
+ export LESS_TERMCAP_me=""
+ export LESS_TERMCAP_se=""
+ export LESS_TERMCAP_so=""
+ export LESS_TERMCAP_ue=""
+ export LESS_TERMCAP_us=""
+
+ ## Gentoo is nuts
+ export GROFF_NO_SGR=1
+}
+
+
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+# ____ _ _ _
+# / ___|| |__ ___| | |
+# \___ \| '_ \ / _ \ | |
+# ___) | | | | __/ | |
+# |____/|_| |_|\___|_|_|
+#
+# ____ __ _ _ _
+# / ___|___ _ __ / _(_) __ _ _ _ _ __ __ _| |_(_) ___ _ __
+# | | / _ \| '_ \| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \
+# | |__| (_) | | | | _| | (_| | |_| | | | (_| | |_| | (_) | | | |
+# \____\___/|_| |_|_| |_|\__, |\__,_|_| \__,_|\__|_|\___/|_| |_|
+# |___/
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+NEWLINE='$(printf "\n")'
+SHELL_CONFIG=".mkshrc"
+PRELOAD="$HOME/${SHELL_CONFIG}.pre"
+LOCAL="$HOME/${SHELL_CONFIG}.local"
+UPDATE_URL="https://www.rygel.us/etc/"
+FANCY_PROMPT=1
+COLOR=1
+
+############################################################
+########## Enviroment variables
+export PAGER="less"
+
+# For use with SSL functions
+export openssl="openssl"
+export CA_CERT="/srv/ssl/root.pem"
+export CA_KEY="/srv/ssl/root.key"
+
+
+# Load our system profile
+. /etc/profile
+
+# Load pre config
+if [ -e $PRELOAD ] ; then
+ . $PRELOAD
+fi
+
+
+if
+ [ $SHELL = "/bin/ksh" ] ||
+ [ $SHELL = "/bin/mksh" ] ||
+ [ $SHELL = "/usr/bin/mksh" ] ||
+ [ $SHELL = "/usr/local/bin/mksh" ]
+then
+ export HISTFILE="$HOME/.ksh_history"
+ set -o emacs
+ bind ^L=clear-screen
+
+ setaliases
+
+ if [ $COLOR -eq 1 ] ; then
+ set_prompt
+ colormanpages
+ setcolorterminal
+ setcoloraliases
+ setlscolors
+ fi
+else
+ # Support other shells
+ setaliases
+
+ [ $SHELL = "/bin/sh" ] && set_super_basic_prompt
+
+ if [ $COLOR -eq 1 ] ; then
+ colormanpages
+ setcolorterminal
+ setcoloraliases
+ setlscolors
+ fi
+fi
+
+# Include local configuration options
+if [ -f $LOCAL ] ; then
+ . $LOCAL
+fi
diff --git a/openvpn.conf b/openvpn.conf
new file mode 100644
index 0000000..e242bb0
--- /dev/null
+++ b/openvpn.conf
@@ -0,0 +1,293 @@
+#################################################
+# Sample OpenVPN 2.0 config file for #
+# multi-client server. #
+# #
+# This file is for the server side #
+# of a many-clients one-server #
+# OpenVPN configuration. #
+# #
+# OpenVPN also supports #
+# single-machine single-machine #
+# configurations (See the Examples page #
+# on the web site for more info). #
+# #
+# This config should work on Windows #
+# or Linux/BSD systems. Remember on #
+# Windows to quote pathnames and use #
+# double backslashes, e.g.: #
+# "C:\\Program Files\\OpenVPN\\config\\foo.key" #
+# #
+# Comments are preceded with '#' or ';' #
+#################################################
+
+# Which local IP address should OpenVPN
+# listen on? (optional)
+;local a.b.c.d
+
+# Which TCP/UDP port should OpenVPN listen on?
+# If you want to run multiple OpenVPN instances
+# on the same machine, use a different port
+# number for each one. You will need to
+# open up this port on your firewall.
+port 1194
+
+# TCP or UDP server?
+;proto tcp
+proto udp
+
+# "dev tun" will create a routed IP tunnel,
+# "dev tap" will create an ethernet tunnel.
+# Use "dev tap0" if you are ethernet bridging
+# and have precreated a tap0 virtual interface
+# and bridged it with your ethernet interface.
+# If you want to control access policies
+# over the VPN, you must create firewall
+# rules for the the TUN/TAP interface.
+# On non-Windows systems, you can give
+# an explicit unit number, such as tun0.
+# On Windows, use "dev-node" for this.
+# On most systems, the VPN will not function
+# unless you partially or fully disable
+# the firewall for the TUN/TAP interface.
+dev tap0
+; dev tun0
+
+# Windows needs the TAP-Windows adapter name
+# from the Network Connections panel if you
+# have more than one. On XP SP2 or higher,
+# you may need to selectively disable the
+# Windows firewall for the TAP adapter.
+# Non-Windows systems usually don't need this.
+;dev-node MyTap
+
+# SSL/TLS root certificate (ca), certificate
+# (cert), and private key (key). Each client
+# and the server must have their own cert and
+# key file. The server and all clients will
+# use the same ca file.
+#
+# See the "easy-rsa" directory for a series
+# of scripts for generating RSA certificates
+# and private keys. Remember to use
+# a unique Common Name for the server
+# and each of the client certificates.
+#
+# Any X509 key management system can be used.
+# OpenVPN can also use a PKCS #12 formatted key file
+# (see "pkcs12" directive in man page).
+ca root.crt
+cert riedstra.us.crt
+key riedstra.us.key # This file should be kept secret
+
+# Diffie hellman parameters.
+# Generate your own with:
+# openssl dhparam -out dh1024.pem 1024
+# Substitute 2048 for 1024 if you are using
+# 2048 bit keys.
+dh dh4096.pem
+
+# Configure server mode and supply a VPN subnet
+# for OpenVPN to draw client addresses from.
+# The server will take 10.8.0.1 for itself,
+# the rest will be made available to clients.
+# Each client will be able to reach the server
+# on 10.8.0.1. Comment this line out if you are
+# ethernet bridging. See the man page for more info.
+server 10.8.0.0 255.255.255.0
+server-ipv6 fc00:baad:a55:1:1::/64
+
+# Maintain a record of client virtual IP address
+# associations in this file. If OpenVPN goes down or
+# is restarted, reconnecting clients can be assigned
+# the same virtual IP address from the pool that was
+# previously assigned.
+ifconfig-pool-persist ipp.txt
+
+# Configure server mode for ethernet bridging.
+# You must first use your OS's bridging capability
+# to bridge the TAP interface with the ethernet
+# NIC interface. Then you must manually set the
+# IP/netmask on the bridge interface, here we
+# assume 10.8.0.4/255.255.255.0. Finally we
+# must set aside an IP range in this subnet
+# (start=10.8.0.50 end=10.8.0.100) to allocate
+# to connecting clients. Leave this line commented
+# out unless you are ethernet bridging.
+;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
+
+# Push routes to the client to allow it
+# to reach other private subnets behind
+# the server. Remember that these
+# private subnets will also need
+# to know to route the OpenVPN client
+# address pool (10.8.0.0/255.255.255.0)
+# back to the OpenVPN server.
+;push "route 192.168.10.0 255.255.255.0"
+;push "route 192.168.20.0 255.255.255.0"
+push "route-ipv6 2000::/3"
+
+# To assign specific IP addresses to specific
+# clients or if a connecting client has a private
+# subnet behind it that should also have VPN access,
+# use the subdirectory "ccd" for client-specific
+# configuration files (see man page for more info).
+
+# EXAMPLE: Suppose the client
+# having the certificate common name "Thelonious"
+# also has a small subnet behind his connecting
+# machine, such as 192.168.40.128/255.255.255.248.
+# First, uncomment out these lines:
+;client-config-dir ccd
+;route 192.168.40.128 255.255.255.248
+# Then create a file ccd/Thelonious with this line:
+# iroute 192.168.40.128 255.255.255.248
+# This will allow Thelonious' private subnet to
+# access the VPN. This example will only work
+# if you are routing, not bridging, i.e. you are
+# using "dev tun" and "server" directives.
+
+# EXAMPLE: Suppose you want to give
+# Thelonious a fixed VPN IP address of 10.9.0.1.
+# First uncomment out these lines:
+;client-config-dir ccd
+;route 10.9.0.0 255.255.255.252
+# Then add this line to ccd/Thelonious:
+# ifconfig-push 10.9.0.1 10.9.0.2
+
+# Suppose that you want to enable different
+# firewall access policies for different groups
+# of clients. There are two methods:
+# (1) Run multiple OpenVPN daemons, one for each
+# group, and firewall the TUN/TAP interface
+# for each group/daemon appropriately.
+# (2) (Advanced) Create a script to dynamically
+# modify the firewall in response to access
+# from different clients. See man
+# page for more info on learn-address script.
+;learn-address ./script
+
+# If enabled, this directive will configure
+# all clients to redirect their default
+# network gateway through the VPN, causing
+# all IP traffic such as web browsing and
+# and DNS lookups to go through the VPN
+# (The OpenVPN server machine may need to NAT
+# the TUN/TAP interface to the internet in
+# order for this to work properly).
+# CAVEAT: May break client's network config if
+# client's local DHCP server packets get routed
+# through the tunnel. Solution: make sure
+# client's local DHCP server is reachable via
+# a more specific route than the default route
+# of 0.0.0.0/0.0.0.0.
+;push "redirect-gateway"
+
+# Certain Windows-specific network settings
+# can be pushed to clients, such as DNS
+# or WINS server addresses. CAVEAT:
+# http://openvpn.net/faq.html#dhcpcaveats
+;push "dhcp-option DNS 10.8.0.1"
+;push "dhcp-option WINS 10.8.0.1"
+
+# Uncomment this directive to allow different
+# clients to be able to "see" each other.
+# By default, clients will only see the server.
+# To force clients to only see the server, you
+# will also need to appropriately firewall the
+# server's TUN/TAP interface.
+client-to-client
+
+# Uncomment this directive if multiple clients
+# might connect with the same certificate/key
+# files or common names. This is recommended
+# only for testing purposes. For production use,
+# each client should have its own certificate/key
+# pair.
+#
+# IF YOU HAVE NOT GENERATED INDIVIDUAL
+# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
+# EACH HAVING ITS OWN UNIQUE "COMMON NAME",
+# UNCOMMENT THIS LINE OUT.
+; duplicate-cn
+
+# The keepalive directive causes ping-like
+# messages to be sent back and forth over
+# the link so that each side knows when
+# the other side has gone down.
+# Ping every 10 seconds, assume that remote
+# peer is down if no ping received during
+# a 120 second time period.
+keepalive 10 60
+
+# For extra security beyond that provided
+# by SSL/TLS, create an "HMAC firewall"
+# to help block DoS attacks and UDP port flooding.
+#
+# Generate with:
+# openvpn --genkey --secret ta.key
+#
+# The server and each client must have
+# a copy of this key.
+# The second parameter should be '0'
+# on the server and '1' on the clients.
+;tls-auth ta.key 0 # This file is secret
+
+# Select a cryptographic cipher.
+# This config item must be copied to
+# the client config file as well.
+;cipher BF-CBC # Blowfish (default)
+;cipher AES-128-CBC # AES
+;cipher DES-EDE3-CBC # Triple-DES
+
+# Enable compression on the VPN link.
+# If you enable it here, you must also
+# enable it in the client config file.
+; comp-lzo
+
+# The maximum number of concurrently connected
+# clients we want to allow.
+;max-clients 100
+
+# It's a good idea to reduce the OpenVPN
+# daemon's privileges after initialization.
+#
+# You can uncomment this out on
+# non-Windows systems.
+;user nobody
+;group nobody
+
+# The persist options will try to avoid
+# accessing certain resources on restart
+# that may no longer be accessible because
+# of the privilege downgrade.
+persist-key
+persist-tun
+
+# Output a short status file showing
+# current connections, truncated
+# and rewritten every minute.
+status openvpn-status.log
+
+# By default, log messages will go to the syslog (or
+# on Windows, if running as a service, they will go to
+# the "\Program Files\OpenVPN\log" directory).
+# Use log or log-append to override this default.
+# "log" will truncate the log file on OpenVPN startup,
+# while "log-append" will append to it. Use one
+# or the other (but not both).
+log openvpn.log
+;log-append openvpn.log
+
+# Set the appropriate level of log
+# file verbosity.
+#
+# 0 is silent, except for fatal errors
+# 4 is reasonable for general usage
+# 5 and 6 can help to debug connection problems
+# 9 is extremely verbose
+verb 3
+
+# Silence repeating messages. At most 20
+# sequential messages of the same message
+# category will be output to the log.
+mute 20
diff --git a/openvpn_client.conf b/openvpn_client.conf
new file mode 100644
index 0000000..447743c
--- /dev/null
+++ b/openvpn_client.conf
@@ -0,0 +1,123 @@
+##############################################
+# Sample client-side OpenVPN 2.0 config file #
+# for connecting to multi-client server. #
+# #
+# This configuration can be used by multiple #
+# clients, however each client should have #
+# its own cert and key files. #
+# #
+# On Windows, you might want to rename this #
+# file so it has a .ovpn extension #
+##############################################
+
+# Specify that we are a client and that we
+# will be pulling certain config file directives
+# from the server.
+client
+
+# Use the same setting as you are using on
+# the server.
+# On most systems, the VPN will not function
+# unless you partially or fully disable
+# the firewall for the TUN/TAP interface.
+dev tap0
+; dev tun0
+
+# Windows needs the TAP-Windows adapter name
+# from the Network Connections panel
+# if you have more than one. On XP SP2,
+# you may need to disable the firewall
+# for the TAP adapter.
+;dev-node MyTap
+
+# Are we connecting to a TCP or
+# UDP server? Use the same setting as
+# on the server.
+;proto tcp
+proto udp
+
+# The hostname/IP and port of the server.
+# You can have multiple remote entries
+# to load balance between the servers.
+remote riedstra.us 1194
+;remote my-server-2 1194
+
+# Choose a random host from the remote
+# list for load-balancing. Otherwise
+# try hosts in the order specified.
+;remote-random
+
+# Keep trying indefinitely to resolve the
+# host name of the OpenVPN server. Very useful
+# on machines which are not permanently connected
+# to the internet such as laptops.
+resolv-retry infinite
+
+# Most clients don't need to bind to
+# a specific local port number.
+nobind
+
+# Downgrade privileges after initialization (non-Windows only)
+;user nobody
+;group nobody
+
+# Try to preserve some state across restarts.
+persist-key
+persist-tun
+
+# If you are connecting through an
+# HTTP proxy to reach the actual OpenVPN
+# server, put the proxy server/IP and
+# port number here. See the man page
+# if your proxy server requires
+# authentication.
+;http-proxy-retry # retry on connection failures
+;http-proxy [proxy server] [proxy port #]
+
+# Wireless networks often produce a lot
+# of duplicate packets. Set this flag
+# to silence duplicate packet warnings.
+;mute-replay-warnings
+
+# SSL/TLS parms.
+# See the server config file for more
+# description. It's best to use
+# a separate .crt/.key file pair
+# for each client. A single ca
+# file can be used for all clients.
+ca root.crt
+cert openvpn-vertex.crt
+key openvpn-vertex.key
+
+# Verify server certificate by checking
+# that the certicate has the nsCertType
+# field set to "server". This is an
+# important precaution to protect against
+# a potential attack discussed here:
+# http://openvpn.net/howto.html#mitm
+#
+# To use this feature, you will need to generate
+# your server certificates with the nsCertType
+# field set to "server". The build-key-server
+# script in the easy-rsa folder will do this.
+;ns-cert-type server
+
+# If a tls-auth key is used on the server
+# then every client must also have the key.
+;tls-auth ta.key 1
+
+# Select a cryptographic cipher.
+# If the cipher option is used on the server
+# then you must also specify it here.
+;cipher x
+
+# Enable compression on the VPN link.
+# Don't enable this unless it is also
+# enabled in the server config file.
+; comp-lzo
+
+# Set log file verbosity.
+verb 3
+
+# Silence repeating messages
+;mute 20
diff --git a/php-pkgs b/php-pkgs
new file mode 100644
index 0000000..58cc808
--- /dev/null
+++ b/php-pkgs
@@ -0,0 +1,53 @@
+php56
+php56-bcmath
+php56-bz2
+php56-calendar
+php56-ctype
+php56-curl
+php56-dom
+php56-exif
+php56-extensions
+php56-fileinfo
+php56-filter
+php56-ftp
+php56-gd
+php56-gettext
+php56-gmp
+php56-hash
+php56-iconv
+php56-imap
+php56-json
+php56-mbstring
+php56-mcrypt
+php56-mysql
+php56-mysqli
+php56-opcache
+php56-openssl
+php56-pdo
+php56-pdo_dblib
+php56-pdo_mysql
+php56-pdo_pgsql
+php56-pdo_sqlite
+php56-phar
+php56-posix
+php56-pspell
+php56-readline
+php56-session
+php56-simplexml
+php56-soap
+php56-sockets
+php56-sqlite3
+php56-sybase_ct
+php56-sysvmsg
+php56-sysvsem
+php56-sysvshm
+php56-tidy
+php56-tokenizer
+php56-wddx
+php56-xml
+php56-xmlreader
+php56-xmlrpc
+php56-xmlwriter
+php56-xsl
+php56-zip
+php56-zlib
diff --git a/ssh/config b/ssh/config
new file mode 100644
index 0000000..97c25d7
--- /dev/null
+++ b/ssh/config
@@ -0,0 +1,135 @@
+# Prevent timeouts on certian systems
+GSSAPIAuthentication no
+
+host riedstra.us
+ hostname 104.131.110.187
+ user mitch
+ port 49000
+
+# Primary Digital Ocean Server
+host main
+ hostname 104.131.110.187
+ user mitch
+ port 49000
+
+# Secondary Digital Ocean Server
+host ns1
+ hostname 104.236.216.98
+ user root
+ port 22
+
+
+# Home servers
+host gw
+ hostname 10.73.0.1
+ port 22
+ user mitch
+
+host vertex
+ hostname 10.73.0.10
+ user mitch
+ port 22
+ Compression no
+
+# Friends
+host kyle
+ hostname glados.blanker.us
+ port 48000
+ user mitch
+host nearlyepic.net
+ port 22
+ user mitch
+
+
+# Github stuff
+host github.com
+ hostname ssh.github.com
+ user git
+ port 443
+ # identityfile ~/.ssh/id_rsa
+host github
+ hostname ssh.github.com
+ user git
+ port 443
+ # identityfile ~/.ssh/id_rsa
+
+
+#__ __ _____ _____ _______ _ _ ______ ______
+#\ \ / //\ / ____| / ____|__ __| | | | ____| ____|
+# \ \_/ // \ | | | (___ | | | | | | |__ | |__
+# \ // /\ \| | \___ \ | | | | | | __| | __|
+# | |/ ____ \ |____ ____) | | | | |__| | | | |
+# |_/_/ \_\_____| |_____/ |_| \____/|_| |_|
+#
+
+# My development server
+host pragmatic
+ user www
+
+host remus
+ hostname remus.yourareacode.com
+ user mitch
+ port 49000
+
+host remus-nginx
+ hostname remus.yourareacode.com
+ user mitch
+ port 22
+
+host remus-l
+ hostname remus.yourareacode.com
+ user mitch
+ port 2300
+
+host herc
+ hostname hercules.yourareacode.com
+ user mitch
+ port 22
+
+host cpanel
+ hostname cpanel1.yac-web.com
+ user root
+ port 22
+
+host cpanel2
+ hostname 192.241.254.138
+ user root
+ port 22
+
+# Unused
+host sec7
+ hostname 192.12.222.162
+ user root
+ port 22
+
+host axial
+ hostname dev.yourareacode.com
+ user mitch
+ port 49000
+
+host raxial
+ hostname dev.yourareacode.com
+ identityfile ~/.ssh/axial_root
+ user root
+ port 49000
+
+host dev
+ hostname dev.yourareacode.com
+ user mitch
+
+host romulus
+ # hostname romulus.yourareacode.com
+ hostname 74.204.50.35
+ user mitch
+ port 22
+
+host rromulus
+ hostname yourareacode.com
+ user root
+ port 22
+
+# Unused
+# host jshaw
+# hostname 104.236.242.178
+# user james
+# port 22
diff --git a/tmux.conf b/tmux.conf
new file mode 100644
index 0000000..a94f717
--- /dev/null
+++ b/tmux.conf
@@ -0,0 +1,39 @@
+set -g status-bg cyan
+set -g status-fg black
+set-window-option -g window-status-current-bg black
+set-window-option -g window-status-current-fg cyan
+bind M-s setw synchronize-panes
+
+# set -g mode-mouse on
+setw -g mode-keys vi
+setw -g aggressive-resize on
+set -g default-terminal "screen-256color"
+
+
+# Don't let command rename our windows
+set-option -g allow-rename off
+
+bind-key -t vi-copy 'v' begin-selection
+bind-key -t vi-copy 'y' copy-selection
+
+# Fix for certian applications such as Nvim
+set -s escape-time 0
+
+
+bind-key M-k select-pane -U
+bind-key M-j select-pane -D
+bind-key M-h select-pane -L
+bind-key M-l select-pane -R
+
+# If you still want to select text out of the terminal as you normally would
+# You should hold the shift key ( Linux ) I'm told it's "Option on Mac OS X"
+set -g mouse on
+
+# Old mouse method
+# set-option -g mode-mouse on
+# set-option -g mouse-resize-pane on
+# set-option -g mouse-select-pane on
+# set-option -g mouse-select-window on
+
+
+source ~/.tmux.conf.local
diff --git a/vim.txz b/vim.txz
new file mode 100644
index 0000000..a41d174
--- /dev/null
+++ b/vim.txz
Binary files differ
diff --git a/vim2.txz b/vim2.txz
new file mode 100644
index 0000000..9c76350
--- /dev/null
+++ b/vim2.txz
Binary files differ