Como definir o comando definido pelo usuário para o ssh connect

1

Atualmente, uso o Terminal para conectar o cluster por:

>ssh -p port user_name@address
>user_name@addresspassword's:
>password 

Eu quero criar um comando definido pelo usuário, simplesmente como connect e um arquivo de configuração contendo esses elementos essenciais

# These contents can be edited
port: xxxx
user_name: xxxx
address: xxxx
password: xxxx

Após essas configurações, quero conectar o cluster simplesmente digitando 'connect' no terminal.

    
por Han Zhengzu 28.01.2018 / 14:08

2 respostas

3

Instale sshpass primeiro.

apt-get/yum install sshpass -y

Adicione isso ao seu ~/.bashrc :

connect()
(
    . ~/.ssh/variables_for_ssh.sh
    SSHPASS=$password sshpass -e ssh -p "$port" "$username@$address"
)

Crie um arquivo chamado variables_for_ssh.sh in ~/.ssh/ (ou algum outro diretório que só possa ser lido por você), com este conteúdo:

password='yourpassword'
port=portnumber
username='your username'
address='your address'

Em seguida, altere as permissões, para que apenas você e o root possam ler e gravar o arquivo.

chmod 600 ~/.ssh/variables_for_ssh.sh

Quando você alterar o conteúdo de variables_for_ssh.sh , apenas forneça seu ~/.bashrc antes de executar connect .

    
por 28.01.2018 / 14:21
0

Editar ~ / .ssh / config:

Host Address
User user_name
Hostname address
Port xxx

Agora você pode se conectar com

 $ ssh Address 

Se você quiser encurtá-lo, adicione um alias a

~/.bashrc:

 alias connect="ssh Address" 

Você deve configurar uma chave pública ssh e colocá-la no servidor remoto para permitir login seguro sem senha.

Não é uma boa idéia armazenar a senha em texto simples ou encurtar um comando como o sshpass one com um alias (que novamente armazenaria a senha em texto simples), veja esta resposta

    
por 15.03.2018 / 19:35

Tags