Увімкніть SSH на Mac в режимі одиночного користувача


10

У мене є iMac, до якого я можу отримати доступ лише в режимі одного користувача через серйозні пошкодження обладнання. Я приєднав до нього ще один комп’ютер з кабелем Ethernet. Я хотів би віддалено увійти в iMac через SSH. IMac працює під керуванням OS X 10.6.4.

Я натрапив на подібні відповіді, але те, що я намагався, завжди невдало.

Я спробував, systemsetup -setremotelogin onі воно повертає таке повідомлення про помилку:

systemsetup[63:903] setInetDServiceEnabled failed for ssh because authorizationRef is NULL!

Поки launchctl load -w /System/Library/LaunchDaemons/ssh.plistдає:

DNSServiceRegister("ssh"): -65563
DNSServiceRegister("sftp-ssh"): -65563
bind(): Can't assign requested address
launch_msg(): Socket is not connected
launchctl: CFURLWriteDataAndPropertiesToResource(/var/db/launchd.db/com.apple.launchd/overrides.plist) failed: -10

Що я повинен зробити?


Can't assign requested addressмені здається, що він не має жодного виду мережевого зв’язку. Я думаю, що в режимі однокористування вам доведеться використовувати ifconfigабо ifupвмикати включення мереж.
Blacklight Shining

@BlacklightShining спасибі! Я не маю досвіду роботи з цими командами, я думаю, що з Mac було б доцільніше використовувати networksetupабо ipconfig, проте. Чи маєте ви уявлення про те, які команди я повинен дати, щоб інший комп'ютер підключився до iMac за допомогою одного кабелю Ethernet? Або, як альтернатива, підключити iMac до Wi-Fi мережі, захищеної WPA2?
Ральфтор

Я сам не впевнений. До man $program_nameречі, ви можете отримати сторінку керівництва майже для будь-якої програми . Я погляну і побачу, чи зможу я щось для вас спробувати…
Blacklight Shining

Відповіді:


8

Схоже, вам потрібно завантажити ще кілька списків:

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
launchctl load /System/Library/LaunchDaemon/com.apple.DirectoryServices.plist

Потім зробіть те, що ви пробували раніше:

launchctl load -w /System/Library/LaunchDaemons/ssh.plist
systemsetup -setremotelogin on

Після цього я думаю, що ви можете просто підключити кабель Ethernet до обох комп'ютерів, щоб створити спеціальну мережу. ifconfig en0 | grep inetна цільовій машині вам слід отримати свою IP-адресу, і тоді ви все налаштовані. :)


Дякую за пораду, перші команди були хорошими. На жаль , до останньої команди комп'ютер відповів: DNSServiceRegister("ssh"): -65563, DNSServiceRegister("sftp-ssh"): -65563, з цими двома повідомленнями повторюється двічі. Тому я не можу з'єднатися з ssh. Я пам'ятаю туманно, що змінив порт для вхідних з'єднань ssh, тому, мабуть, я винен, але я вдячний за будь-яку допомогу
Ralphtor

Треба уточнити: launchctl load -w /System/Library/LaunchDaemons/ssh.plistдає мені помилку, про яку я згадував у попередньому коментарі, при цьому systemsetup -setremotelogin onпродовжує даватиsetInetDServiceEnabled failed for ssh because authorizationRef is NULL!
Ральфтор

Ви пам’ятаєте, як ви змінили порт? Чи можете ви змінити його назад? Це може нічого не зробити, але варто спробувати…
Blacklight Shining

Я читав конфігураційні файли, здається, що порт встановлений правильно на 21. Мабуть, це не було проблемою, оскільки я дотримувався вказівок іншого Mac і ssh видав ті самі помилки. Справедливості заради того, що Mac, який я тестував, був Mac mini з Lion, і він скаржився, що його com.apple.DirectoryServices.plistбільше не існує (як його видалили у Lion), але це не повинно бути великою проблемою, оскільки ssh дав мені точно таку ж помилку, як у iMac.
Ральфтор

3

Три рішення, які ви могли б розглянути. Спочатку спробуйте режим цільового диска. Якщо працює один користувальницький режим, то повинен працювати і режим цільового диска.

Після запуску в режимі цільового диска підключіть його до іншої системи (використовуючи firewire) та скажіть другій системі зовнішньо завантажуватися (утримуючи опцію під час завантаження). Після того, як ОС у пошкодженій системі завантажується за допомогою апаратного забезпечення локальної системи, відкрийте «Налаштування системи» та натисніть «Обмін». Установіть прапорець біля пункту «Віддалений вхід», щоб увімкнути його.

Вимкніть та перезапустіть, і у вас повинен працювати SSH та працювати.

Другий варіант - вийняти жорсткий диск із пошкодженої системи та завантажитися з нього зовні (у зовнішньому корпусі) або помістити його всередину вашої функціональної системи та завантажитися звідти.

Якщо жодне з цих не працює, але ви працюєте з одним користувачем, врахуйте

cd /Library/Preferences
echo -n enabled > com.apple.ScreenSharing.launchd

Це дозволить увімкнути спільний доступ до екрана, використовувати його для доступу до системних налаштувань на віддаленій машині, внести зміни (увімкнути SSH) і ви працюєте.


0

Чому б не запустити sshd безпосередньо? Як тільки мережа запуститься /usr/sbin/sshd -p 4212, відкриється ssh-сервер на порту 4212.


Дякую за вашу відповідь. Я виконав команду (з цікавості хотів би запитати, для чого потрібно написати повний шлях /usr/sbin/). Якщо я запускаю topна iMac, я бачу процес, який називається sshd, тому він мав би працювати. Однак, коли я підключаюся до комп'ютера за допомогою кабелю Ethernet, шукаю IP-адресу iMac ifconfigі запускаю ssh 192.168.0.3 -p 4212на іншому комп’ютері, він говоритьssh: connect to host 192.168.0.3 port 4212: Operation timed out
Ralphtor

Я також повинен зазначити, що shutdown -h nowзараз не працює для вимкнення iMac. Мені довелося це закрити вручну
Ральфтор

Я схильний писати повні шляхи у своїх відповідях, щоб уникнути сюрпризів через погано налаштовані змінні PATH. Я використовую цю команду часто, і вона працює для мене, 10.6 і 10.7, хоча не в режимі єдиного користувача, я повинен визнати. Ви з'єднуєте в ssh як root?
cdelacroix

Як підключитися як root? Я намагався, ssh root@192.168.0.3 -p 4212і я навіть намагався з іменами користувачів інших облікових записів, встановлених в iMac, і це завжди вичерпується. Якщо я використовую інший порт, замість 4212, він скаржиться на "З'єднання відмовлено", тому щось має працювати, тому що, здається, він відповідає правильному порту. Однак я досі не можу підключитися
Ральфтор

Можливо, сервер не зможе покласти оболонку? Ви можете спробувати ssh -vvv root@192.168.0.3 -p 4212побачити (дійсно) багатослівний вихід з боку клієнта, або навіть на стороні сервера перевести ssh в режим налагодження, щоб побачити, що відбувається (з sshd -d -p 4212).
cdelacroix
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.