Jak utworzyć skrót terminalu połączenia ssh w Mac OS X?

27

Za każdym razem jest do kitu otwarcie Terminalu i napisanie pełnego polecenia SSH. Jak mogę utworzyć skrót do połączenia SSH Terminal Terminal w Mac OS X 10.6.8 (Snow Leopard)?

Mam również niestandardowy port do połączenia.

Misza
źródło

Odpowiedzi:

80

Najbardziej * NIX-y odpowiedzią jest skorzystanie z funkcji SSH na swoją korzyść.

Utwórz plik o nazwie configw ~/.ssh/(folder o nazwie .sshw folderze domowym). Dodaj wpis dla każdego komputera, z którym chcesz się połączyć, w następujący sposób:

Host compy
    HostName 98.256.211.12
    Port 90
    User sidney
    IdentityFile ~/.ssh/my_rsa_key
  • HostName może być adresem IP lub rzeczywistą nazwą hosta.
  • Port nie jest obowiązkowe, jeśli używany jest domyślny port SSH
  • IdentityFilenie jest obowiązkowe, jeśli nie używasz klucza.

    Następnie, aby się połączyć, po prostu wpisz

ssh compy

Jeśli korzystasz z uwierzytelniania opartego na kluczach i przechowujesz hasło klucza w pęku kluczy, nie musisz nawet wpisywać hasła.

Ponadto możesz utworzyć plik .command (zwykły plik tekstowy z rozszerzeniem .command) zawierający wiersz poleceń służący do łączenia się z serwerem ( ssh compylub ssh -i ~/.ssh/my_rsa_key -p 90 [email protected]). Otworzy się w Terminalu i uruchomi to polecenie.

Do połączenia możesz także użyć New Remote Connection…pozycji menu w Terminalu. Wystarczy dodać hosta w SSH, klikając +przycisk w prawej kolumnie.

Czytaj więcej TUTAJ

s4y
źródło
Użyłem tego w połączeniu z dodaniem mojego klucza ssh do serwera. Możesz wcisnąć swój klucz publiczny, jak ten „ssh-copy-id -i .ssh / id_rsa.pub nazwa użytkownika: hasło @
remotehost
10

Masz kilka opcji, o których mogę myśleć:

Utwórz plik .command

W swoim ulubionym edytorze tekstu utwórz zapisz zwykły plik tekstowy za pomocą polecenia ssh, np.

ssh -p 23 [email protected]

Nazwij plik WHATEVERYOUWANT.command. Następnie musisz ustawić .commandplik z uprawnieniami do wykonywania ( chmod 755 /PATH/TO/WHATEVERYOUWANT.command), ale teraz masz plik, który po dwukrotnym kliknięciu otworzy Terminal i uruchomi to polecenie.

Utwórz aliasy dla swojej powłoki

Zakładając, że używasz bash (domyślna powłoka w Mac OS X), możesz dodać aliasy do swojego .bashrcfolderu domowego.

na przykład. alias sshserver='ssh -p 23 [email protected]'

Więcej informacji na temat aliasów można znaleźć na stronie [Wikipedia] ( http://en.wikipedia.org/wiki/Alias_(command) lub czytając dokumentację.

Chealion
źródło
5

Istnieje wiele sposobów, aby to zrobić. Oto co robię:

Otwórz Preferencje terminala

Zduplikuj swój profil na karcie Ustawienia za pomocą ikony koła zębatego. Spowoduje to zmianę domyślnego pliku ustawień, więc zmień stare domyślne z powrotem na to, co było przed powieleniem.

W nowych ustawieniach niestandardowych kliknij typ powłoki w komendzie ssh w sekcji Uruchom komendę podczas uruchamiania.

Zmień nazwę nowego ustawienia z niestandardowego na dowolne.

Możesz teraz rozpocząć sesję z pozycji menu Nowe okno lub Nowa karta, a skrót klawiaturowy można oczywiście przypisać w Preferencjach systemowych.

ridogi
źródło
3

Możesz utworzyć AppleScript, który uruchomi dla Ciebie polecenie:

tell application "Terminal"
    do script "ssh server.example.com"
end tell
Stephen Jennings
źródło
3

Aby szybko otworzyć połączenie ssh z dowolnego miejsca na komputerze Mac, wykonaj następujące czynności:

  • Otwórz TextEdit i wpisz ciąg połączenia w postaci: ssh://[email protected]
  • Wybierz całą linię, przeciągnij ją i upuść na pulpicie. Rezultatem będzie *.inetlocplik.
  • Przenieś plik do dowolnego folderu, który Ci się podoba. Stworzyłem taki, ~/connectionsktóry przechowuje wszystkie moje *.inetlocpliki. Możesz zmienić nazwę tego pliku na dowolny, a nawet zmienić jego ikonę.
  • Teraz możesz przeciągnąć i upuścić *.inetlocplik na Docku, pasku bocznym Findera lub pasku narzędzi lub gdziekolwiek indziej. (Można go nawet wybrać za pomocą Spotlight)
  • Jeśli używasz paska uruchamiania, otwórz ekran konfiguracji paska uruchamiania (Command-Y) i dodaj kolejną regułę dla folderu połączeń. Teraz Twoje połączenia SSH można otworzyć za pomocą paska LaunchBar. Wierzę, że możesz zrobić podobnie z LaunchBar i Quicksilver, umożliwiając szybkie uruchamianie skrótów SSH.

Twórz szybko dostępne skróty ssh

Antonio
źródło
1
Jest to z pewnością miły i szybki sposób na otwarcie terminala na zdalnym hoście!
cmroanirgo
3

Dla tych, którzy używają klucza prywatnego z ssh i chcą skorzystać z metody ~ / .ssh / config, możesz dodać atrybut „IdentityFile” do swojego hosta wraz ze ścieżką klucza. To znaczy:

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

Dodałbym ten fragment jako komentarz do jednej z odpowiedzi, ale moja reputacja jest wciąż niska i nie wolno mi tego robić.

Tarek Koudsi
źródło
2

Jeśli chcesz plik, który możesz otworzyć, aby uruchomić sesję, możesz łatwo .inetloc. W TextEdit wpisz adres URL SSH do swojego hosta, np .:

ssh://username@hostname/path

TextEdit rozpozna to jako adres URL. Przeciągnij adres URL na pulpit, aby utworzyć plik .inetloc w następujący sposób:

<?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>

Następnie możesz umieścić ten plik w dowolnym miejscu, na przykład w Docku, lub otworzyć go za pomocą programu uruchamiającego, takiego jak Quicksilver.

Poleciłbym wtyczkę SSH dla Quicksilver, ale najnowszy, jaki mogę znaleźć, v.84, powoduje awarię QS nowszą niż β54 (3815).

Turadg
źródło
Czy możesz to zrobić również z portem? Na przykład hostname:1234?
Daniel Beck
Tak. ssh: // nazwa użytkownika @ nazwa hosta: port również działa.
Turadg
1

Jeśli używasz Quicksilver, istnieje świetny dodatek o nazwie RemoteHosts, który automatycznie skanuje plik ~ / .hosts lub nawet plik ~ / .ssh / known_hosts w celu automatycznego wypełnienia.

Połączenie z nowym hostem jest tak szybkie, jak otwarcie Quicksilver (CMD-Space), a następnie wpisanie wystarczającej liczby znaków hosta, aby być unikalnym, i na koniec naciśnięcie klawisza Enter.

ticklemeozmo
źródło
0

Jeśli część, która jest do kitu, wpisuje długie i złożone polecenie ssh, ale nie masz nic przeciwko otwarciu terminalu iz jakiegoś powodu nie chcesz używać żadnego z podejść z poprzednich odpowiedzi, możesz również użyć aliasy lub funkcje. Dodaj coś takiego do powłoki dotfile (.profile lub .bash_profile lub .bashrc lub .cshrc lub .zshrc lub cokolwiek innego):

alias connect.dev='ssh -p 12345 [email protected]'

Jedyną zaletą, którą widzę w porównaniu z innymi podejściami, jest to, że (przynajmniej w Zsh i myślę, że bash) możesz użyć uzupełniania poleceń, aby zobaczyć wszystkie serwery, z którymi chcesz się połączyć. Załóżmy na przykład, że masz 25 różnych serwerów, z którymi się łączysz, i nie chcesz pamiętać wszystkich nazw / aliasów, które im nadałeś w pliku .ssh / config. Jeśli wszystkie aliasy zaczynają się od tej samej rzeczy, na przykład „połącz.”, Po prostu wpisz polecenie connect. [TAB] w wierszu polecenia, a zobaczysz wszystkie możliwe uzupełnienia. (Uwaga: może być konieczne dostosowanie powłoki, aby działało, ale wierzę, że będzie działać domyślnie w Zsh i prawdopodobnie również w bash).

Jeśli część, która jest dla ciebie do bani, to otwarcie terminalu, możesz spróbować użyć czegoś takiego jak DuckBill , chociaż jedynym powodem, dla którego mogę wymyślić uruchomienie ssh OUTSIDE of Terminal, może być prawdopodobnie uruchomienie programów serwera X Windows lub tunelu ssh.

ikonoklasta
źródło
0

Możesz utworzyć plik w lokalnym katalogu bin

/usr/local/bin/dev

O następującej treści:

#!/bin/bash
ssh -p 12345 [email protected] 

Zrób to

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

Który następnie możesz zadzwonić z terminala za pomocą

dev

Następnie tworzysz zadanie automatyzatora, aby je otworzyć

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

Możesz także utworzyć skrót z programu uruchamiającego lub skrótu na klawiaturze

Launcher: przeciągnij ikonę z automatyzacji zapisz na pasek dokowania

Skrót klawiszowy:

create as service in automator
open system services -> keyboard -> shortcuts -> app shortcuts -> enter title of automator and key shortcut 
Jason
źródło