Отстойно каждый раз открывать Терминал и писать полную команду SSH. Как создать ярлык терминала SSH-подключения в Mac OS X 10.6.8 (Snow Leopard)?
У меня также есть собственный порт для подключения.
Наиболее * 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, нажав кнопку + в правом столбце.
Читать ЗДЕСЬ
У вас есть пара вариантов, о которых я могу подумать:
В вашем любимом текстовом редакторе создайте, сохраните обычный текстовый файл с помощью команды 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) или читая документацию.
Есть много способов сделать это. Вот что я делаю:
Открыть терминал Настройки
Дублируйте свой профиль на вкладке Настройки со значком шестеренки. Это изменит ваш файл настроек по умолчанию, поэтому измените ваш старый по умолчанию обратно на тот, который был до дублирования.
В новых настраиваемых настройках нажмите «Тип оболочки» в команде ssh в разделе «Выполнить команду при запуске».
Переименуйте вашу новую настройку из Custom в любую, какую хотите.
Теперь вы можете начать сеанс из элементов меню «Новое окно» или «Новая вкладка», и, конечно, сочетание клавиш можно назначить в разделе «Клавиатура и мышь» в «Системных настройках».
Для тех, кто использует закрытый ключ со своим ssh и хочет использовать метод ~/.ssh/config, вы можете добавить атрибут 'IdentityFile' на ваш хост, а затем путь к ключу. То есть:
Host SomeServer
User ubuntu
HostName someserver.com
IdentityFile ~/.ssh/private.key
Я бы добавил этот бит в качестве комментария к одному из ответов, но моя репутация все еще низкая, и мне не разрешено это делать.
Чтобы быстро открыть ssh-соединение практически из любого места на вашем Mac, сделайте следующее:
ssh://user@host.com
*.inetloc
. ~/connections
который содержит все мои файлы *.inetloc
. Вы можете переименовать этот файл так, как вам нравится, и даже изменить его значок.*.inetloc
в Dock, боковую панель Finder, панель инструментов или куда-либо еще. (Его можно даже выбрать с помощью Spotlight) Вы можете создать AppleScript, который будет запускать команду для вас:
tell application "Terminal"
do script "ssh server.example.com"
end tell
Если вам нужен файл, который вы можете открыть для запуска сеанса, вы можете легко создать .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).
Если вы используете Quicksilver, есть отличное дополнение RemoteHosts, которое автоматически сканирует файл ~/.hosts или даже файл ~/.ssh/known_hosts для автоматического заполнения.
Подключение к новому хосту так же быстро, как открыть Quicksilver (CMD-Space), а затем набрать достаточно символов хоста, чтобы быть уникальным, и, наконец, нажать Enter.
Вы можете создать файл в вашем локальном каталоге 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
Если часть, которая вам не подходит, набирает длинную и сложную команду 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.