Skip to content

Instantly share code, notes, and snippets.

@jacobsalmela
Created May 13, 2014 17:51
Show Gist options
  • Save jacobsalmela/fcb68a7af67d16f0d42d to your computer and use it in GitHub Desktop.
Save jacobsalmela/fcb68a7af67d16f0d42d to your computer and use it in GitHub Desktop.
Enables outbound SSH in Single-user Mode on OS X
#!/bin/bash
# https://github.com/jacobsalmela
# Enables outbound SSH in single-user mode on OS X
# Save this file as /var/root/.profile and boot into single-user mode
# Last tested on 10.9.2
#----------VARIABLES---------
# Manually set ethernet device ID
ethernetID="en0"
# Put static IPv4 with subnet mask here
ethernetIP="10.x.x.x 255.255.0.0"
#----------FUNCTIONS---------
#######################
function mountAndLoad()
{
/sbin/fsck -fy
/sbin/mount -uw /
# Loads daemons needed for networking in SUM
launchctl load /System/Library/LaunchDaemons/com.apple.kextd.plist
launchctl load /System/Library/LaunchDaemons/com.apple.notifyd.plist
launchctl load /System/Library/LaunchDaemons/com.apple.configd.plist
# Sleep to allow the NIC to initialize
sleep 15
}
##########################
function setWiredAddress()
{
# Set a static IP
ipconfig set $ethernetID INFORM $ethernetIP
}
################################
function loadDaemonsForSSH()
{
sleep 5
# Possible daemons needed to enable SSH
launchctl load -w /System/Library/LaunchDaemons/com.apple.distnoted.xpc.daemon.plist
launchctl load -w /System/Library/LaunchDaemons/com.apple.securityd.plist
launchctl load -w /System/Library/LaunchDaemons/com.apple.securityd_service.plist
launchctl load -w /System/Library/LaunchDaemons/com.apple.opendirectoryd.plist
launchctl load -w /System/Library/LaunchDaemons/com.apple.dnsextd.plist
launchctl load -w /System/Library/LaunchDaemons/com.apple.Kerberos.digest-service.plist
launchctl load -w /System/Library/LaunchDaemons/com.apple.Kerberos.kadmind.plist
launchctl load -w /System/Library/LaunchDaemons/com.apple.Kerberos.kcm.plist
launchctl load -w /System/Library/LaunchDaemons/com.apple.Kerberos.kdc.plist
launchctl load -w /System/Library/LaunchDaemons/com.apple.Kerberos.kpasswdd.plist
# Load SSH
launchctl load -w /System/Library/LaunchDaemons/ssh.plist
echo "Outbound SSH is now enabled."
}
#---------------------------------#
#----------SCRIPT BEGINS----------#
#---------------------------------#
if [ $TERM = "vt100" ];then
mountAndLoad
setWiredAddress
loadDaemonsForSSH
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment