25

Отстойно каждый раз открывать Терминал и писать полную команду SSH. Как создать ярлык терминала SSH-подключения в Mac OS X 10.6.8 (Snow Leopard)?

У меня также есть собственный порт для подключения.

10 ответов10

76

Наиболее * 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). Он откроется в Терминале и запустит эту команду.

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

Читать ЗДЕСЬ

10

У вас есть пара вариантов, о которых я могу подумать:

Создать файл .command

В вашем любимом текстовом редакторе создайте, сохраните обычный текстовый файл с помощью команды ssh, например.

ssh -p 23 admin@server.example.com

Назовите файл WHATEVERYOUWANT.command . Затем нужно установить файл .command с привилегиями (выполняют 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 в разделе «Выполнить команду при запуске».

Переименуйте вашу новую настройку из Custom в любую, какую хотите.

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

3

Для тех, кто использует закрытый ключ со своим ssh и хочет использовать метод ~/.ssh/config, вы можете добавить атрибут 'IdentityFile' на ваш хост, а затем путь к ключу. То есть:

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

Я бы добавил этот бит в качестве комментария к одному из ответов, но моя репутация все еще низкая, и мне не разрешено это делать.

3

Чтобы быстро открыть ssh-соединение практически из любого места на вашем Mac, сделайте следующее:

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

Создать быстрый доступ к SSH ярлыкам

3

Вы можете создать AppleScript, который будет запускать команду для вас:

tell application "Terminal"
    do script "ssh server.example.com"
end tell
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>

Затем вы можете поместить этот файл в любое место, например, в док-станцию, или открыть его с помощью средства запуска, такого как Quicksilver.

Я бы порекомендовал плагин SSH для Quicksilver, но последняя версия, которую я могу найти, v.84, дает сбой QS новее, чем β54 (3815).

1

Если вы используете Quicksilver, есть отличное дополнение RemoteHosts, которое автоматически сканирует файл ~/.hosts или даже файл ~/.ssh/known_hosts для автоматического заполнения.

Подключение к новому хосту так же быстро, как открыть Quicksilver (CMD-Space), а затем набрать достаточно символов хоста, чтобы быть уникальным, и, наконец, нажать Enter.

0

Вы можете создать файл в вашем локальном каталоге bin

/usr/local/bin/dev

Со следующим содержанием:

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

Сделайте это исполняемым

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

Который затем вы можете позвонить с терминала, используя

dev

И затем вы создаете задачу Automator, чтобы открыть его

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

Вы также можете создать ярлык из панели запуска или горячей клавиши на клавиатуре

Launcher: перетащите иконку из автоматического сохранения в док-панель

Сочетание клавиш:

create as service in automator
open system services -> keyboard -> shortcuts -> app shortcuts -> enter title of automator and key shortcut 
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 of Terminal, может быть запуск программ сервера X Windows или туннель ssh.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .