Як створити ярлик терміналу для ssh-зв’язку на Mac OS X?


27

Це гарно, щоб кожен раз відкривати Термінал і писати повну команду SSH. Як я можу створити ярлик терміналу для підключення SSH на Mac OS X 10.6.8 (Snow Leopard)?

У мене також є власний порт, до якого потрібно підключитися.

Відповіді:


80

Найбільш * NIX-y відповідь - використовувати функції SSH на вашу користь.

Створіть файл, названий configу ~/.ssh/(папку з іменем .sshу вашій домашній папці). Додайте запис для кожного комп'ютера, до якого потрібно підключитися, наприклад:

Host compy
    HostName 98.256.211.12
    Port 90
    User sidney
    IdentityFile ~/.ssh/my_rsa_key
  • HostName може бути або IP-адресою, або фактичним іменем хоста.
  • Port не є обов'язковим, якщо використовується стандартний порт SSH
  • IdentityFileне є обов'язковим, якщо не використовується ключ.

    Потім для підключення просто введіть

ssh compy

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

Крім того, ви можете створити .command файл (звичайний текстовий файл з розширенням .command), що містить командний рядок, який ви використовуєте для підключення до сервера ( ssh compyабо ssh -i ~/.ssh/my_rsa_key -p 90 sidney@98.256.211.12). Він відкриється в Terminal і запустить цю команду.

Ви також можете використовувати New Remote Connection…пункт меню в Терміналі для підключення. Просто додайте свого хоста під SSH, натиснувши +кнопку в правій колонці.

Детальніше читайте ТУТ


Я використовував це в поєднанні з додаванням мого ключа ssh на сервер. Ви можете натиснути на свій відкритий ключ, як-от 'ssh-copy-id -i .ssh / id_rsa.pub ім'я користувача: пароль @
remotehost

10

У вас є пара варіантів, про які я можу придумати:

Створіть файл .command

У своєму улюбленому текстовому редакторі створіть зберегти звичайний текстовий файл за допомогою команди ssh, наприклад.

ssh -p 23 admin@server.example.com

Назвіть файл WHATEVERYOUWANT.command. Тоді вам потрібно встановити .commandфайл із правами Execute ( chmod 755 /PATH/TO/WHATEVERYOUWANT.command), але тепер у вас є файл, який при подвійному натисканні відкриє термінал і запустить цю команду.

Створіть псевдоніми для вашої оболонки

Якщо припустимо, що ви використовуєте bash (оболонка за замовчуванням у Mac OS X), ви можете додати псевдоніми .bashrcу свою домашню папку.

напр. alias sshserver='ssh -p 23 admin@server.example.com'

Ви можете дізнатися більше про псевдоніми у [Wikipedia] ( http://en.wikipedia.org/wiki/Alias_(command) або прочитавши документацію.


5

Існує багато способів зробити це. Ось що я роблю:

Відкрийте налаштування терміналу

Дублюйте свій профіль на вкладці Налаштування за допомогою значка шестірні. Це змінює ваш файл налаштувань за замовчуванням, тому поверніть ваш старий за замовчуванням назад на те, що було до дублювання.

У своїх нових спеціальних налаштуваннях натисніть на тип оболонки в команді ssh в розділі «Запустити команду при запуску».

Перейменуйте своє нове налаштування з "Спеціальне" на те, що вам потрібно.

Тепер ви можете розпочати сеанс із пунктів меню «Нове вікно» або «Нова вкладка», і, звичайно, комбінація клавіш може бути призначена в «Клавіатура та миша» в системних налаштуваннях.



3

Щоб швидко відкрити ssh-з'єднання практично з будь-якого місця на вашому Mac, виконайте наступне:

  • Відкрийте TextEdit і введіть рядок підключення у вигляді: ssh://user@host.com
  • Виберіть цілу лінію та перетягніть її на робочий стіл. В результаті вийде *.inetlocфайл.
  • Перемістіть файл у будь-яку вподобану вами папку. Я зробив одну назву, ~/connectionsяка зберігає всі мої *.inetlocфайли. Ви можете перейменувати цей файл на все, що завгодно, і навіть змінити його значок.
  • Тепер ви можете перетягнути *.inetlocфайл на док-станцію, бічну панель або панель інструментів Finder або куди завгодно. (Його навіть можна вибрати за допомогою прожектора)
  • Якщо ви використовуєте LaunchBar, відкрийте екран «Конфігурація панелі запуску» (Command-Y) і додайте інше правило для вашої папки з'єднань. Тепер ваші SSH-з'єднання можна відкрити за допомогою LaunchBar. Я вважаю, що ви можете зробити подібне з LaunchBar та Quicksilver, що дозволяє швидко запустити ваші ярлики SSH.

Створення швидкого доступу до ssh


1
Це, безумовно, приємний і швидкий спосіб відкриття терміналу на віддаленому хості!
cmroanirgo

3

Для тих, хто використовує приватний ключ зі своїм ssh і хоче використовувати метод ~ / .ssh / config, ви можете додати атрибут "IdentityFile" до свого хоста з наступним контуром ключа. Тобто:

Host SomeServer
    User ubuntu
    HostName someserver.com
    IdentityFile ~/.ssh/private.key

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


2

Якщо ви хочете, щоб файл, який ви можете відкрити для запуску сеансу, ви можете легко зробити .inetloc. У TextEdit введіть URL-адресу SSH для свого хоста, наприклад:

ssh://username@hostname/path

TextEdit визнає це URL-адресою. Перетягніть URL на робочий стіл, і він створить .inetloc так:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>URL</key>
    <string>ssh://username@hostname/path</string>
</dict>
</plist>

Потім ви можете розмістити цей файл у будь-якому місці, як-от ваш Dock, або відкрити його за допомогою запуску, наприклад Quicksilver.

Я б порекомендував плагін SSH для Quicksilver, але останнє, що я можу знайти, v.84, вибиває QS новіше, ніж β54 (3815).


Ви також можете це зробити з портом? Наприклад hostname:1234?
Даніель Бек

Так. ssh: // ім'я користувача @ ім'я хоста: порт також працює.
Турадг

1

Якщо ви використовуєте Quicksilver, є чудова добавка під назвою RemoteHosts, яка автоматично сканує файл ~ / .hosts або навіть ваш файл ~ / .ssh / known_hosts для автоматичного заселення.

Підключення до нового хоста відбувається так само швидко, як відкрити Quicksilver (CMD-Space), а потім набрати достатньо символів хоста, щоб бути унікальним, і, нарешті, натиснути клавішу Enter.


0

Якщо частина, яка вам підходить, набирає довгу і складну команду ssh, але ви не заперечуєте проти відкриття терміналу, і ви чомусь не хочете використовувати жодний з підходів попередніх відповідей, ви також можете використовувати псевдоніми або функції. Додайте щось подібне до dotfile оболонки (.profile або .bash_profile або .bashrc або .cshrc або .zshrc чи інше):

alias connect.dev='ssh -p 12345 yourusername@dev.somehost.net'

Єдиною перевагою, яку я бачу перед іншими підходами, є те, що (принаймні, в zsh, і я думаю, що bash) ви можете використовувати завершення команд, щоб побачити всі ваші сервери для підключення. Наприклад, скажімо, у вас є 25 різних серверів, до яких ви підключаєтесь, і ви не хочете запам’ятовувати всі імена / псевдоніми, які ви дали їм у .ssh / config файл. Якщо всі псевдоніми починаються з одного і того ж, наприклад, "connect.", Тоді просто введіть connect. [TAB] у командному рядку, і ви побачите всі можливі доповнення. (Відмова: Вам, можливо, знадобиться виконати певну настройку оболонки, щоб працювати так, але я вважаю, що вона буде працювати за замовчуванням в zsh і, ймовірно, також у bash.)

Якщо частина, яка вам підходить, відкриває термінал, тоді ви можете спробувати використовувати щось на кшталт DuckBill , хоча єдиною причиною, на яку я можу подумати, запустити ssh OUTSIDE Terminal, може бути, для запуску серверних програм X Windows або тунелю ssh.


0

Ви можете створити файл у своєму локальному каталозі бін

/usr/local/bin/dev

З наступним змістом:

#!/bin/bash
ssh -p 12345 username@www.mydomain.com 

Зробіть його виконуваним

chmod a+x /usr/local/bin/dev

Що потім ви можете зателефонувати з терміналу за допомогою

dev

Потім ви створюєте завдання автоматизатора, щоб відкрити його

tell application "Finder" to set theSel to selection

tell application "Terminal"
    set theFol to POSIX path of ((item 1 of theSel) as text)
    if (count of windows) is not 0 then
        do script "/usr/local/bin/dev2" in window 1
    else
        do script "/usr/local/bin/dev2"
    end if
    activate
end tell

Ви також можете створити ярлик із пускового меню або гарячої клавіші на клавіатурі

Запуск: перетягніть піктограму з автоматизатора, збережіть на панелі док-станцій

Комбінація клавіш:

create as service in automator
open system services -> keyboard -> shortcuts -> app shortcuts -> enter title of automator and key shortcut 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.