Install SSH

From AwkwardTV
Revision as of 17:22, 25 March 2007 by 72.197.199.167 (talk) (Step 6)
Jump to: navigation, search

These instructions are for installing ssh on the Apple TV from an Intel Mac (if you don't have an Intel Mac, you need to find another source for sshd). You need to remove the Apple TV's hard drive and mount it using some sort of firewire or usb enclosure, perform the below steps, and then reinstall the drive.

Step 1

Create the directory fw in /Volumes/OSBoot/System/Library/StartupItems/.

Step 2

Create the file StartupParameters.plist in /Volumes/OSBoot/System/Library/StartupItems/fw/ with the following text:

{
  Description = "Firewall";
  Provides = ("Firewall");
  Requires = ("Network");
  OrderPreference = "None";
}

Step 3

Create the shell script fw in /Volumes/OSBoot/System/Library/StartupItems/fw/ with the following text:

#!/bin/sh

/sbin/ipfw -f flush
/sbin/ipfw add 65535 allow ip from any to any

Step 4

Copy sshd from /usr/sbin/ on your local Intel Mac, to /Volumes/OSBoot/usr/sbin/ on the Apple TV HD (you have to use an Intel-compiled version).

Step 5

Rewrite /Volumes/OSBoot/System/Library/LaunchDaemons/ssh.plist with this:

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
	 <key>Disabled</key>
	 <false/>
         <key>Label</key>
         <string>com.openssh.sshd</string>
         <key>Program</key>
         <string>/usr/libexec/sshd-keygen-wrapper</string>
         <key>ProgramArguments</key>
         <array>
                 <string>/usr/sbin/sshd</string>
                 <string>-i</string>
         </array>
         <key>SessionCreate</key>
         <true/>
         <key>Sockets</key>
         <dict>
               <key>Listeners</key>
                 <dict>
                         <key>Bonjour</key>
                         <array>
                                 <string>ssh</string>
                                 <string>sftp-ssh</string>
                         </array>
                         <key>SockServiceName</key>
                         <string>ssh</string>
                 </dict>
         </dict>
         <key>StandardErrorPath</key>
         <string>/dev/null</string>
         <key>inetdCompatibility</key>
         <dict>
                 <key>Wait</key>
                 <false/>
         </dict>
 </dict>
 </plist>

Step 6

Log in like this:

ssh -1 frontrow@AppleTV.local

Password "frontrow"

  • Note: user "frontrow" has sudo privileges. The password for sudo is "frontrow".