Увімкніть 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.