SSH - Como incluir “-t command” no arquivo ~ / .ssh / config

13

Eu uso o arquivo ~/.ssh/config para poder inserir facilmente ssh myserver e fornecerá o nome de usuário, porta, nome de host, arquivo de identidade, etc.

corretos.

No entanto, para muitos servidores, a primeira coisa que faço é inserir su - para efetuar login como root. Eu posso fazer isso tudo em um comando na linha de comando da seguinte forma: ssh myserver -t su - . Existe algo que eu possa adicionar ao meu arquivo ~/.ssh/config que vai fazer isso por mim? Eu quero poder fazer ssh myserver-root e ele fará o mesmo que ssh myserver -t su - ?

Eu sei sobre PermitRootLogin , que está desativado para esse servidor e estou relutante em ativar isso. Eu prefiro ver se há uma maneira de fazer isso usando o ssh no lado do cliente.

    
por Rory 19.08.2009 / 16:12

6 respostas

10

Acho que abordaria isso de outra direção - use 'command =' na entrada de chave pública no seu arquivo ~ / .ssh / authorized_keys no servidor remoto, para executar o comando "su -".

Depois é só usar / referenciar a chave privada em seu arquivo ~ / .ssh / config (opção IdentityFile) para cada host / alias ("myserver-root") que você quer que funcione dessa maneira.

As opções disponíveis em authorized_keys (5) estão documentadas em sshd (8).

    
por 19.08.2009 / 18:15
7

Use a força Luke!

use RequestTTY force no seu ~/.ssh/config para o host desejado.

entre. isso também é discutido aqui link

    
por 07.07.2016 / 17:57
3

Por que não adicionar um script a um diretório em seu caminho (ou um alias para ele) chamado rssh como:

#!/bin/bash
ssh $1 -t 'su -'

Então é só:

rssh myServer
    
por 19.08.2009 / 16:44
1

Eu não encontrei nenhuma opção de configuração para alocação pseudo-tty na fonte OpenSSH.

Mas posso dar uma dica sobre o PermitRootLogin, defini-lo para:

PermitRootLogin without-password

E permitir apenas logins de raiz com chaves ssh.

    
por 19.08.2009 / 16:28
1

Que tal adicionar algo assim em ~ / .bashrc no lado do servidor?

if [ "$SSH_TTY" != "" ]; then su -; logout; fi
    
por 19.08.2009 / 18:07
1

A melhor resposta é provavelmente uma combinação de rkthkr e jrg . Use PermitRootLogin para exigir uma chave e, em seguida, coloque a chave apenas com a palavra-chave command no arquivo authorized_keys do root.

    
por 19.08.2009 / 18:20

Tags