Como criar um atalho de terminal de conexão ssh no Mac OS X?

27

É uma droga abrir o Terminal toda vez e escrever um comando SSH completo. Como criar um atalho de terminal de conexão SSH no Mac OS X 10.6.8 (Snow Leopard)?

Eu também tenho uma porta personalizada para conectar.

misha
fonte

Respostas:

80

A resposta mais * NIX-y é usar os recursos do SSH para sua vantagem.

Crie um arquivo nomeado configem ~/.ssh/(uma pasta nomeada .sshna sua pasta pessoal). Adicione uma entrada para cada computador ao qual você deseja se conectar, assim:

Host compy
    HostName 98.256.211.12
    Port 90
    User sidney
    IdentityFile ~/.ssh/my_rsa_key
  • HostName pode ser um endereço IP ou um nome de host real.
  • Port não é obrigatório se estiver usando a porta SSH padrão
  • IdentityFilenão é obrigatório se não estiver usando uma chave.

    Então, para conectar, basta digitar

ssh compy

Se você usa a autenticação baseada em chave e armazena a senha da chave no Keychain, nem precisará digitar uma senha.

Além disso, você pode criar um arquivo .command (um arquivo de texto sem formatação com a extensão .command) contendo a linha de comando usada para conectar-se ao servidor ( ssh compyou ssh -i ~/.ssh/my_rsa_key -p 90 [email protected]). Ele será aberto no Terminal e executará esse comando.

Você também pode usar o New Remote Connection…item de menu no Terminal para conectar-se. Basta adicionar seu host no SSH clicando no +botão na coluna da direita.

Leia mais AQUI

s4y
fonte
Eu usei isso em combinação com a adição da minha chave ssh ao servidor. Você pode empurrar a chave pública como esta 'ssh-copy-id -i .ssh / id_rsa.pub usuário: senha @ remotehost'
jspooner
10

Você tem algumas opções em que posso pensar:

Crie um arquivo .command

No seu editor de texto favorito, crie um arquivo de texto simples com o seu comando ssh, por exemplo.

ssh -p 23 [email protected]

Nomeie o arquivo WHATEVERYOUWANT.command. Você precisa definir o .commandarquivo com privilégios de execução ( chmod 755 /PATH/TO/WHATEVERYOUWANT.command), mas agora possui um arquivo que, ao clicar duas vezes, abrirá o Terminal e executará esse comando.

Crie aliases para seu shell

Supondo que você esteja usando o bash (o shell padrão no Mac OS X), você pode adicionar aliases ao seu .bashrcna sua pasta pessoal.

por exemplo. alias sshserver='ssh -p 23 [email protected]'

Você pode encontrar mais sobre aliases em [Wikipedia] ( http://en.wikipedia.org/wiki/Alias_(command) ou lendo a documentação.

Chealion
fonte
5

Há muitas maneiras de fazer isso. Aqui está o que eu faço:

Abrir preferências do terminal

Duplique seu perfil na guia Configurações com o ícone de roda dentada. Isso altera seu arquivo de configuração padrão; portanto, volte ao padrão anterior para o que era antes da duplicação.

Nas suas novas configurações personalizadas, clique em Shell, digite seu comando ssh na seção Executar Comando na Inicialização.

Renomeie sua nova configuração de Personalizado para o que quiser.

Agora você pode iniciar sua sessão a partir dos itens de menu Nova Janela ou Nova Guia, e é claro que um atalho de teclado pode ser atribuído em Teclado e Mouse em Preferências do Sistema.

ridogi
fonte
3

Você pode criar um AppleScript que executará um comando para você:

tell application "Terminal"
    do script "ssh server.example.com"
end tell
Stephen Jennings
fonte
3

Para abrir rapidamente uma conexão ssh de praticamente qualquer lugar no seu Mac, faça o seguinte:

  • Abra o TextEdit e digite sua cadeia de conexão na forma de: ssh://[email protected]
  • Selecione a linha inteira, arraste e solte-a na área de trabalho. O resultado será um *.inetlocarquivo.
  • Mova o arquivo para qualquer pasta que desejar. Eu criei um nome ~/connectionsque contém todos os meus *.inetlocarquivos. Você pode renomear esse arquivo para o que quiser e até alterar seu ícone.
  • Agora você pode arrastar e soltar o *.inetlocarquivo no Dock, na barra lateral ou na barra de ferramentas do Finder ou em qualquer outro lugar. (Pode até ser selecionado com o Spotlight)
  • Se você usar o LaunchBar, abra a tela Configuração da barra de lançamento (Command-Y) e adicione outra regra à sua pasta de conexões. Agora suas conexões SSH podem ser abertas com o LaunchBar. Acredito que você pode fazer o mesmo com o LaunchBar e o Quicksilver, permitindo o lançamento rápido de seus atalhos SSH.

Crie atalhos ssh de acesso rápido

Antonio
fonte
1
Esta é certamente uma maneira rápida e agradável de abrir um terminal em um host remoto!
Cmroanirgo 16/03/2014
3

Para aqueles que usam uma chave privada com seu ssh e desejam usar o método ~ / .ssh / config, você pode adicionar um atributo 'IdentityFile' ao seu host, seguido pelo caminho da chave. Ou seja:

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

Eu adicionaria este comentário como uma resposta a uma das respostas, mas minha reputação ainda é baixa e não tenho permissão para fazê-lo.

Tarek Koudsi
fonte
2

Se você deseja abrir um arquivo para iniciar uma sessão, pode criar um .inetloc facilmente. No TextEdit, digite um URL SSH para o seu host, por exemplo:

ssh://username@hostname/path

O TextEdit reconhecerá isso como um URL. Arraste o URL para a área de trabalho e ele criará um .inetloc da seguinte maneira:

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

Você pode colocar esse arquivo em qualquer lugar, como o Dock, ou abri-lo com um iniciador como o Quicksilver.

Eu recomendaria o SSH Plugin para o Quicksilver, mas o mais recente que posso encontrar, v.84, trava o QS mais recente que 54 (3815).

Turadg
fonte
Você também pode fazer isso com uma porta? Por exemplo hostname:1234?
Daniel Beck
Sim. ssh: // nome do usuário @ nome do host: port também funciona.
Turadg 31/01
1

Se você estiver usando o Quicksilver, existe um ótimo complemento chamado RemoteHosts, que verificará automaticamente um arquivo ~ / .hosts ou mesmo o arquivo ~ / .ssh / known_hosts para preenchimento automático.

Conectar-se a um novo host é tão rápido quanto abrir o Quicksilver (CMD-Space) e digitar caracteres suficientes do host para ser exclusivo e, finalmente, pressionar enter.

ticklemeozmo
fonte
0

Se a parte mais chata para você é digitar um comando longo e complexo ssh, mas você não se importa de abrir o Terminal e, por algum motivo, não deseja usar nenhuma das abordagens das respostas anteriores, também pode usar aliases ou funções. Adicione algo assim ao shell dotfile (.profile ou .bash_profile ou .bashrc ou .cshrc ou .zshrc ou o que for):

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

A única vantagem que posso ver sobre outras abordagens é que (pelo menos no zsh, e acho que o bash), você pode usar a conclusão de comandos para ver todos os seus servidores aos quais se conectar. Por exemplo, digamos que você tenha 25 servidores diferentes aos quais se conecta e não queira se lembrar de todos os nomes / aliases dados a eles no arquivo .ssh / config. Se todos os aliases começarem com a mesma coisa, como 'connect.', Basta digitar connect. [TAB] no prompt de comando e você verá todas as conclusões possíveis. (Aviso: você pode precisar fazer alguma personalização do shell para que isso funcione, mas acredito que funcionará por padrão no zsh e provavelmente no bash.)

Se a parte que é péssima para você está abrindo o Terminal, você pode tentar usar algo como o DuckBill , embora os únicos motivos pelos quais posso pensar em executar o ssh FORA do Terminal possam ser os programas do servidor X Windows ou um túnel ssh.

iconoclasta
fonte
0

Você pode criar um arquivo no diretório bin local

/usr/local/bin/dev

Com o seguinte conteúdo:

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

Torne executável

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

Que você pode ligar do terminal usando

dev

E você cria uma tarefa de automação para abri-la

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

Você também pode criar um atalho no iniciador ou na tecla de atalho do teclado

Launcher: Arraste o ícone do automator save para a dockbar

Atalho do teclado:

create as service in automator
open system services -> keyboard -> shortcuts -> app shortcuts -> enter title of automator and key shortcut 
Jason
fonte